Как предотвратить закрытие командной строки после выполнения?
Моя проблема в том, что в Windows есть окна командной строки, которые закрываются сразу после выполнения. Чтобы решить эту проблему, я хочу, чтобы по умолчанию окно оставалось открытым. Обычно такого поведения можно избежать тремя способами, которые приходят мне на ум:
- Постановка строки
pause
после пакетных программ, чтобы предложить пользователю нажать клавишу перед выходом из - Запуск этих пакетных файлов или других инструментов манипулирования из командной строки (даже запуска служб, перезагрузки и т.д. с помощью
net start xy
или чего-то подобного) вcmd.exe
(Start - Run - cmd.exe) - Запуск этих программ с
cmd /k
следующим образом:cmd /k myprogram.bat
Но есть и другие случаи, когда пользователь:
- Запускает программу в первый раз и не знает, что данная программа будет запущена в командной строке (Windows Command Processor), например, при запуске ярлыка из меню Пуск (или откуда-нибудь еще), OR
- Немного неудобно постоянно запускать cmd.exe и не имеет времени/возможности везде переписывать код этих команд, чтобы поставить после них паузу или явно не выходить из программы.
Я прочитал статью об изменении поведения cmd.exe
по умолчанию при явном открытии, с созданием записи AutoRun и манипулированием его содержимым в этих местах:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor\AutoRun
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Command Processor\AutoRun
(Элементы AutoRun - это _String values_
…)
я ставлю cmd /d /k
в качестве значения, чтобы дать ему попробовать, но это совсем не изменило поведение упомянутых выше вещей…. Просто изменилось поведение окна командной строки при его явном открытии (Start-Run-cmd.exe).
Так как же оно работает? Можете ли вы дать мне какие-нибудь идеи для решения этой проблемы?