Командная строка, будучи запущенной, закроется только тогда, когда пользователь нажмет кнопку завершения работы или выполнит в ней команду exit. Но бывает и такое, что после командная строка закрывается сама, не сообщая пользователю о результатах отработанного сценария и не сообщая о причинах закрытия. Как правило, с таким поведением консоли приходится сталкиваться при выполнении скриптов — CMD или BAT-файлов.
Это вполне нормально, но иногда нужно, чтобы после отработки такого скрипта консоль не закрывалась автоматически, а ждала ввода следующей команды.
Ну что же, понудить ее изменить свое поведения очень просто. Самый простой способ — это добавить в конец командного файла команду pause или специальный ключ, запускающую копию командной строки.
Главное, чтобы у вас имелись права на редактирование этого самого скрипта.
Отройте скрипт Блокнотом или любым другим текстовым редактором и добавьте в самый конец кода команду pause или cmd /k.
Сохраните файл.
Это два разных способа и работают они по-разному.
Команда pause прерывает выполнение скрипта и выводит сообщение «Для продолжения нажмите любую клавишу…». Если команда добавлена в конец скрипта, при нажатии любой клавиши консоль будет закрыта, если же pause окажется в середине кода, после нажатия любой клавиши продолжится выполнение скрипта (следующих команд).
Команда cmd /k работает несколько иначе.
Будучи добавлена в конец сценария, она как-бы перезапускает консоль, выводя стандартное приглашение ввести новую команду.
Если же добавить cmd /k в середину кода, его выполнение будет прервано и прекращено.
В этом основная разница между этими командами.
Тонкая настройка командной строки
Если нет желания возиться с каждым командным файлом, отредактируйте параметры работы самой командной строки.
Для этого открываем командой regedit редактор реестра и разворачиваем ветку:
HKCR\batfile\shell\open\command
В правой колонке меняем значение параметра по умолчанию с "%1" %* на cmd.exe /k "%1" %*.
Тоже самое проделываем с параметром по умолчанию в ветке HKCR\cmdfile\shell\open\command, для командных файлов формата CMD.
Вот и всё, отныне командная строка будет закрываться только по решению юзера, если только в сценарий не прописана команда exit.
Добавить комментарий