Windows Batch script uruchamia program i kończy konsolę
Mam skrypt wsadowy, którego używam do uruchamiania programu, np. notepad.exe
. Po dwukrotnym kliknięciu tego pliku wsadowego notatnik uruchamia się normalnie, ale czarne okno cmd
, który uruchomił notepad.exe
, pozostaje w tle. Co muszę zrobić, aby uruchomić notepad.exe
i sprawić, że okno cmd zniknie?
Edycja : jest bardziej skomplikowana niż użycie \I
.
The cmd
calls cygwin
, and cygwin
starts notepad
. Używam
start \I \path\cygwin\bin\bash.exe
I pierwsze okno (cmd) znika, ale drugie okno (\cygwin \ bin \ bash.exe) jest nadal w tle. W skrypcie cygwin użyłem notepad.exe &
, a następnie zakończyłem.
6 answers
start "" "%SystemRoot%\Notepad.exe"
Zachowaj ""
pomiędzy startem a ścieżką aplikacji.
Dodano Wyjaśnienie:
Normalnie kiedy uruchamiamy program z pliku wsadowego jak poniżej, będziemy mieli czarne okna w tle jak powiedział OP.
%SystemRoot%\Notepad.exe
To było spowodowane przez Notatnik uruchomiony w tym samym wierszu polecenia (procesie). Wiersz polecenia zostanie zamknięty po zamknięciu notatnika. Aby tego uniknąć, możemy użyć polecenia start
, aby rozpocząć oddzielny proces, taki jak to.
start %SystemRoot%\Notepad.exe
To polecenie jest w porządku, dopóki nie ma miejsca w ścieżce. Aby obsłużyć spację w ścieżce na wszelki wypadek, dodaliśmy "
cudzysłowy w ten sposób.
start "%SystemRoot%\Notepad.exe"
Jednak uruchomienie tego polecenia spowoduje uruchomienie kolejnego pustego wiersza polecenia. Dlaczego? Jeśli wyszukasz start /?
, polecenie start
rozpozna argument pomiędzy "
jako tytuł nowego wiersza polecenia, który ma zostać uruchomiony. Więc, aby to rozwiązać, mamy polecenie jak to:
start "" "%SystemRoot%\Notepad.exe"
Pierwszym argumentem {[6] } jest ustawienie tytułu (które ustawiamy jako puste), a drugim argumentem
"%SystemRoot%\Notepad.exe"
jest komendą docelową do uruchomienia (obsługującą spacje w ścieżce).
Jeśli chcesz dodać parametry do polecenia, po prostu dołącz je, np.:
start "" "%SystemRoot%\Notepad.exe" "<filename>"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-08 09:59:08
Użyj start notepad.exe
.
Więcej informacji z start /?
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-06 08:54:03
%ComSpec% /c %systemroot%\notepad.exe
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-01 17:04:30
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-04 09:48:05
Hmm... robię to w jednym z moich plików wsadowych, bez użycia CALL lub START :
%SystemRoot%\notepad.exe ..\%URI%
GOTO ENDF
Nie mam zainstalowanego Cygwina i jestem na Windows XP.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-09-27 21:55:15
Spróbuj zacząć path\to\cygwin\bin\bash.exe
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-11 20:55:21