[Контекст: я пытаюсь создать ярлык для файла .bat с относительным путем «Начать в», как примерно описано здесь и здесь.]
cmd.exe
поддерживает переключатель /c
. Согласно документации, это должно заставить его «выполнить команду и затем завершить работу».
Но похоже, что переключатель игнорируется, когда команда представляет собой .bat
файл. Например, если вы создаете ярлык со следующей целью (для обычной команды, отличной от летучей мыши):
C:\Windows\System32\cmd.exe /c "START /d C:\temp\ notepad.exe test.txt"
Все работает как положено: открывается Блокнот и консоль (оболочка) исчезает. Но если вы замените приведенную выше команду файлом .bat, например:
C:\Windows\System32\cmd.exe /c "START /d C:\temp\ C:\test.bat"
(где test.bat
содержит только "notepad.exe test.txt
") Блокнот открывается, как и раньше, но консоль остается там, как нежелательный друг. Почему? И что еще важнее, как мне заставить его уйти?
ОБНОВЛЕНИЕ: я знаю, что могу использовать wscript, как в этом решении, но затем теряю возможность иметь собственный значок (я застрял со значком .vbs по умолчанию).