Що робити, якщо після виконання скрипта командний рядок автоматично закривається

15

Командний рядок, будучи запущеною, закриється тільки тоді, коли користувач натисне кнопку завершення роботи або виконає в ній команду exit . Але буває і таке, що після командний рядок закривається сама, не повідомляючи користувачеві про результати відпрацьованого сценарію і не повідомляючи про причини закриття. Як правило, з такою поведінкою консолі доводиться стикатися при виконанні скриптів — cmd або bat-файлів.

Це цілком нормально, але іноді потрібно, щоб після відпрацювання такого скрипта консоль не закривалася автоматично, а чекала введення наступної команди.

Ну що ж, спонукати її змінити свою поведінки дуже просто. Найпростіший спосіб-це додати в кінець командного файлу команду pause або спеціальний ключ, що запускає копію командного рядка.

Головне, щоб у вас були права на редагування цього самого скрипта.

pause або cmd / k .

Збережіть файл.

Це два різних способи і працюють вони по-різному.

Команда pause перериває виконання скрипта і виводить повідомлення » для продовження натисніть будь-яку клавішу… ” . Якщо команда додана в кінець скрипта, при натисканні будь-якої клавіші консоль буде закрита, якщо ж pause виявиться в середині коду, після натискання будь-якої клавіші продовжиться виконання скрипта (наступних команд).

Команда cmd / k працює трохи інакше.

Будучи додана в кінець сценарію, вона як-би перезапускає консоль, виводячи стандартне запрошення ввести нову команду.

Якщо ж додати cmd / k в середину коду, його виконання буде перервано і припинено.

У цьому основна різниця між цими командами.

Тонка настройка командного рядка

Якщо немає бажання возитися з кожним командним файлом, відредагуйте параметри роботи самої командного рядка.

Для цього відкриваємо командою regedit редактор реєстру і розгортаємо гілку:

У правій колонці міняємо значення параметра за замовчуванням з “%1” %* на cmd.exe /k “%1” %* .

Теж саме проробляємо з параметром за замовчуванням в гілці hkcrcmdfileshellopencommand , для командних файлів формату cmd.

Ось і все, відтепер командний рядок буде закриватися тільки за рішенням користувача, якщо тільки в сценарій не прописана команда exit.