Яку команду можна поставити в кінці пакетного файлу, щоб запобігти автоматичному закриттю консолі після виконання файлу?
Яку команду можна поставити в кінці пакетного файлу, щоб запобігти автоматичному закриттю консолі після виконання файлу?
Відповіді:
У пакетних файлах 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
в кінці пакетного файлу.
Можливість 1: Просто створіть 2 .bat файли і запишіть у перший:
start <filename> // name of 2nd batch file
exit
Пакетний файл 2 - це файл, який в кінці кінця не закриється. Тож тепер, коли ви відкриєте партію №1, вона запустить 2-ю та закриє себе. Коли 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..."
Примітка: простір після '=' дуже важливий
Я знаю, що спізнююсь, але мій кращий спосіб:
:programend
pause>nul
GOTO programend
Таким чином користувач не може вийти за допомогою enter.
Є два способи зробити це залежно від випадку використання
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 .