Как сохранить окно консоли открытым даже после завершения программы из пакетного файла? - PullRequest
0 голосов
/ 30 августа 2018

Мне нужно создать пакетный файл (.bat), который будет держать окно консоли открытым даже после завершения работы запущенной программы (с целью проверки вывода окна консоли). Для этого я попытался использовать переключатель "/ WAIT":

@ECHO OFF
title test
@ECHO ON
start "" /WAIT "C:\My CLI Tools\7zip\x64\7za.exe"

Но несмотря на использование ключа "/ WAIT", окно консоли автоматически закрывается после завершения работы 7za.exe. (Очевидно, переключатель "/ WAIT" ждет только до тех пор, пока запущенная программа не будет прервана).

Так как же заставить окно консоли оставаться открытым даже после завершения работы 7za.exe?

1 Ответ

0 голосов
/ 30 августа 2018

start /wait указывает пакету дождаться завершения программы перед выполнением следующей строки или завершением сценария. чтобы держать его открытым и ничего не делать, вы можете использовать pause:

@ECHO OFF
title test
@ECHO ON
"C:\My CLI Tools\7zip\x64\7za.exe"
pause

Или тайм-аут:

@ECHO OFF
title test
@ECHO ON
start "" /WAIT "C:\My CLI Tools\7zip\x64\7za.exe"
timeout /t 300

Но оба они ничего не сделают, пока не истечет время ожидания или вы не нажмете любую клавишу.

Если вы ожидали вывода в окне cmd, а команда фактически выводит данные в консоль cmd, то вам не следует start выходить за пределы текущего окна консоли. Просто сделай:

@ECHO OFF
title test
@ECHO ON
"C:\My CLI Tools\7zip\x64\7za.exe"
pause
...