Программа запуска пакетного скрипта Windows и консоль выхода - PullRequest
73 голосов
/ 06 мая 2011

У меня есть пакетный скрипт, который я использую для запуска программы, например notepad.exe.Когда я дважды щелкаю по этому пакетному файлу, блокнот запускается нормально, но черное окно cmd, запустившего notepad.exe, остается на заднем плане.Что мне нужно сделать, чтобы запустить notepad.exe и заставить окно cmd исчезнуть?

edit : сложнее, чем использование \I.

.cmd вызывает cygwin, а cygwin начинает notepad.Я использую

start \I \path\cygwin\bin\bash.exe

, и первое окно (cmd) исчезает, но второе окно (\ cygwin \ bin \ bash.exe) все еще находится в фоновом режиме.В сценарии cygwin я использовал notepad.exe & и затем завершил работу.

Ответы [ 6 ]

162 голосов
/ 12 октября 2012
start "" "%SystemRoot%\Notepad.exe"

Держите "" между началом и вашим приложением.


Добавлено объяснение:

Обычно, когда мы запускаем программу из командного файла, как показано ниже, у нас будут черные окна на фоне, как сказал OP.

%SystemRoot%\Notepad.exe

Это вызвано тем, что Блокнот работает в той же командной строке (процесс). Командная строка закроется ПОСЛЕ закрытия блокнота. Чтобы избежать этого, мы можем использовать команду start для запуска отдельного процесса, подобного этому.

start %SystemRoot%\Notepad.exe

Эта команда хороша, если в пути нет пробела. Чтобы обработать пространство в пути на всякий случай, мы добавили кавычки ", подобные этой.

start "%SystemRoot%\Notepad.exe"

Однако выполнение этой команды просто запустит другую пустую командную строку. Зачем? Если вы посмотрите на start /?, команда start распознает аргумент между " в качестве заголовка новой командной строки, которую она собирается запустить. Итак, чтобы решить это, у нас есть такая команда:

start "" "%SystemRoot%\Notepad.exe"

Первый аргумент "" должен установить заголовок (который мы установили как пустое), а второй аргумент "%SystemRoot%\Notepad.exe" - целевая команда для запуска (которая поддерживает пробелы в пути).

Если вам нужно добавить параметры в команду, просто добавьте их в кавычки, т. Е .:

start "" "%SystemRoot%\Notepad.exe" "<filename>" 
9 голосов
/ 06 мая 2011

Использование start notepad.exe.

Больше информации с start /?.

5 голосов
/ 04 июля 2014

Самый простой способ - просто запустить его с start

start notepad.exe

Здесь Вы можете найти больше информации о start

5 голосов
/ 20 мая 2011

%ComSpec% /c %systemroot%\notepad.exe

1 голос
/ 28 сентября 2011

Хм ... я делаю это в одном из моих командных файлов, как это, без использования CALL или START:

%SystemRoot%\notepad.exe ..\%URI%
GOTO ENDF

Хотя у меня не установлен Cygwin, и я на Windows XP.

0 голосов
/ 12 октября 2012

Попробуйте начать path\to\cygwin\bin\bash.exe

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...