Какую команду я могу поставить в конце командного файла, чтобы предотвратить автоматическое закрытие консоли после выполнения файла?
Какую команду я могу поставить в конце командного файла, чтобы предотвратить автоматическое закрытие консоли после выполнения файла?
Ответы:
В пакетных файлах Windows / DOS:
pause
Это печатает хорошее "Press any key to continue . . . "
сообщение
Или, если вы не хотите "Press any key to continue . . ."
сообщение, сделайте это вместо:
pause >nul
Зависит от точного вопроса!
Обычно pause
выполняет работу в файле .bat .
Если вы хотите, чтобы cmd.exe не закрывался, чтобы продолжать печатать, используйте cmd /k
команду в конце файла.
cmd /k
вместо него команду. & cmd /k
не сработает
Если вы хотите, чтобы cmd.exe не закрывался и продолжал печатать, используйте
cmd /k
Просто почувствовал необходимость уточнить, что /k
делает (с сайта Windows):
/k
: Выполняет команду, указанную в строке, и продолжает.
Поэтому cmd /k
без последующей команды в конце bat-файла просто оставьте cmd.exe
окно открытым для дальнейшего использования.
С другой стороны, pause
в конце командного файла будет просто приостановить процесс и завершится cmd.exe
при первом нажатии кнопки
Приведенный ниже способ размещения команд в командном файле откроет новые окна командной строки, и новые окна не закроются автоматически.
start "title" call abcd.exe param1 param2
start "title" call xyz.exe param1 param2
Если вы используете Maven и хотите пропустить ввод и не допустить закрытия консоли, чтобы увидеть результат, вам нужно использовать CALL
команду в сценарии, кроме просто «mvn clean install».
Как это закроет консоль
ECHO This is the wrong exemple
mvn clean install
pause
Так консоль останется открытой
ECHO This is the right exemple
CALL mvn clean install
pause
Если вы не используете CALL
команду, ни один из примеров не будет работать.
call <myCommand>
решило эту проблему: моя подсказка перестала закрываться после первого выполнения
Добавьте cmd.exe
в качестве новой строки ниже кода, который вы хотите выполнить:
c:\Python27\python D:\code\simple_http_server.py
cmd.exe
python script.py %1 && cmd
мой способ - написать реальную партию (говоря "foo.bat"), чтобы закончить работу; затем создайте еще один "start.bat":
@echo off
cmd /k foo.bat
Я считаю, что это очень полезно, когда я устанавливаю одноразовые переменные среды.
cmd /k
(без какой-либо команды) в конец foo.bat
файла и запустить его. Вам не нужен отдельный start.bat
файл.
Позвоните cmd
в конце командного файла.
кроме того pause
.
set /p=
Может быть использован. Он будет ожидать ввода пользователя и освободит поток при нажатии Enter.
или
runas /user:# "" >nul 2>&1
который будет делать то же самое, за исключением того, что ничего из пользовательского ввода не будет отображаться и не останется в истории команд.
Возможность 1: Просто создайте 2 .bat файла и напишите в первый:
start <filename> // name of 2nd batch file
exit
Пакетный файл 2 - это файл, который в конце не закроется. Так что теперь, когда вы открываете пакет № 1, он начнет 2-й и само одеться. Когда второе закончится, оно не закроется полностью (если вы не поставите выход в конце)
Возможность 2: Пакетный файл 1:
call <filename>
cls
echo End of file
pause
<any code you want>
Когда второй файл закончится, он снова перейдет к файлу 1 и выведет остаток. С этим вы даже можете сделать обработчики ошибок. Если nr.1 падает, он входит в nr.2 и отображает его
Этот маленький хакер просит пользователя ввести ключ и сохранить его в переменной% exitkey% (хотя эта переменная может называться как угодно).
set /p exitkey= "Press any key to continue..."
NB: пробел после '=' очень важен
Я знаю, что опаздываю, но мой любимый способ:
:programend
pause>nul
GOTO programend
Таким образом, пользователь не может выйти, используя ввод.
Есть два способа сделать это в зависимости от варианта использования
1) Если вы хотите, чтобы приглашение Windows cmd оставалось открытым, чтобы вы могли видеть результат выполнения и затем закрыть его; использование
pause
2) если вы хотите, чтобы Windows cmd оставался открытым и позволял вам выполнять некоторые команды после слов; использование
cmd
Легко, добавьте cmd к своей последней строке летучей мыши, НО! если вы сбрасываете или очищаете системный путь, вы должны запустить cmd с полным путем, например:
%windir%\system32\cmd.exe
Например, у меня есть файл bat для сброса jdk к старой версии, например:
PATH=C:\Program Files\Java\jdk1.6.0_45\bin;C:\apache-ant-1.7.1\bin
SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45
%windir%\system32\cmd.exe
так как я сбрасываю системный путь, я должен запустить cmd с полным путем, или система не может найти cmd.exe, он не сможет запустить cmd и просто закроет окно, и вы не увидите сообщение об ошибке msg ,