[Контекст. Я пытаюсь создать ярлык для файла .bat с относительным «Путевка в» путь, грубо описал here и here]cmd.exe не прекращается при использовании файла .bat
cmd.exe
поддерживает переключатель /c
. Согласно документации, это должно заставить его «выполнить команду, а затем закончить».
Но переключатель, кажется, игнорируется, когда команда является файлом .bat
. Например, если вы создаете ярлык со следующей Target (для нормальной, бесконтактную команду летучей мыши):
C:\Windows\System32\cmd.exe /c "START /d C:\temp\ notepad.exe test.txt"
Все работает, как ожидалось: Notepad открывает и консоль (оболочка) исчезает. Но если заменить команду выше с BAT-файлом, а не, например, так:
C:\Windows\System32\cmd.exe /c "START /d C:\temp\ C:\test.bat"
(где test.bat
содержит только «notepad.exe test.txt
») Блокнот открывается, как и раньше, но консоль палочки вокруг как нежелательный друг. Зачем? И более того, как мне заставить его уйти?
UPDATE: Я знаю, что могу использовать Wscript, как в this solution, но тогда я потеряю возможность иметь собственный значок (я застрял значок по умолчанию .vbs).
Хм, у меня другое поведение, чем вы предлагаете (когда я запускаю блокнот из командной строки, он возвращается немедленно.) Но тем не менее, командный файл в моем сообщении был всего лишь примером. Фактический пакетный файл в производстве на самом деле не под моим контролем, поэтому, к сожалению, я не могу его изменить. – kmote
А я вижу, что вы правы, когда запускаете его вручную. Тем не менее, если вы запускаете командный файл вручную, вы увидите, что блокнот блокирует пакетный файл. – Blorgbeard
См. Мое редактирование, возможно, это сработает для вас, а не – Blorgbeard