Как отключить автоматическое закрытие командной строки после завершения?

18

Я знаю, что были некоторые хитрости с более старыми версиями Windows, чтобы сделать это, но не уверен в Windows 7.

Если у меня было программное обеспечение, которое выполняет команду с переключателями, в результате чего окно cmd.exe быстро открывалось и закрывалось, как я могу перенастроить командную строку, чтобы она НЕ закрывалась автоматически после завершения задачи.

Хитрость в том, что выполняемая команда действительно представляет собой командный файл, в конце содержит оператор паузы, но способ, которым программное обеспечение пытается выполнить команду, терпит неудачу. Так как он закрывается так быстро, мы не знаем, какая ошибка возвращается, так как он закрывается так быстро.

Mythics
источник
Хороший вопрос, тихо, я также хотел, чтобы я знал это, потому что иногда игровые / программные патчи появляются в .BAT файлах, закрывающихся после выполнения инструкций без приостановки и отображения выполненных команд для конечного пользователя.
Boris_yo
1
Почему бы не открыть командное окно, перейти в этот каталог и запустить пакет оттуда? Это будет выполняться в том же неоткрывающемся окне cmd, которое будет оставаться открытым после завершения пакета. Это может дать вам некоторые подсказки, чтобы помочь отладить его.
декабря
Спасибо, slhck, вы указали мне на это местоположение, похоже, что ближайшая возможность достичь того, что я хочу, находится в реестре для batfile / cmdfile.
Мифы

Ответы:

8

Вместо того, чтобы запускать этот .batфайл напрямую из Проводника или любого другого метода, который вы используете, запустите его вручную cmd.exe(при необходимости с повышенными привилегиями), а затем запустите ваш .batфайл оттуда. Затем, после завершения его выполнения, вы все равно увидите все результаты ... как в старые добрые времена DOS. :)

Mxx
источник
Нажмите Пуск и введите cmdи нажмите enter, вы запустите командную строку. Просто перетащите то, что вам нужно для запуска (ваш скрипт на python или .exe) в окна cmd, и нажмите enter.
JinSnow
6

В вашем .bat файле используйте pauseкоманду. Это предотвратит закрытие вашего .bat файла.

Например, это мой bat-файл, который я использую для запуска службы MySQL на моем ПК:

net start MySQL
pause

Примечание: в Windows 7 я запускаю этот .bat-файл от имени администратора. Для этого щелкните правой кнопкой мыши на вашем .bat-файле и выберите «Начать с имени администратора» в раскрывающемся меню.

Никита
источник
5

Вам нужно использовать ключ / k при звонке.

Полезные подробности здесь .

Shevek
источник
1

В сценариях .bat вы выключаете «выход» в конце сценария, чтобы оставить окно командной строки открытым.

Окно команд, открытое скриптом, всегда закрывается в конце скрипта, потому что оно зависит от скрипта. Самостоятельное открытие окна и запуск сценария не закрывает окно, если вы не указали команду «exit» в конце сценария, поскольку окно не зависит от сценария.

Похоже, что есть способ предотвратить закрытие зависимого от сценария окна после завершения работы сценария в Windows 7. Однако возможно, что сообщения об ошибках будут записаны в другом месте. Есть ли в программе файл журнала? Или есть записи в логах Windows?

music2myear
источник
0
pause>nul

это должно работать.

Ответ
источник
2
Пожалуйста, внимательно прочитайте вопрос. Ваш ответ не отвечает на оригинальный вопрос. «Хитрость в том, что выполняемая команда действительно является командным файлом и включает в себя оператор pause в конце »,
DavidPostill
0

Нажмите startи введите cmdи нажмите enter, вы запустите командную строку. Просто перетащите то, что вам нужно для запуска (ваш скрипт на python, .exe ...) в окна cmd, и нажмите enter. (Если вам нужно запустить cmd от имени администратора, найдите cmd в меню «Пуск», щелкните по нему правой кнопкой мыши и выберите run as admin) (Работает в Windows 7)

JinSnow
источник
Пожалуйста, не размещайте один и тот же ответ на несколько вопросов. Если одна и та же информация действительно отвечает на оба вопроса, то один вопрос (обычно более новый) следует закрыть как дубликат другого. Вы можете указать это, проголосовав, чтобы закрыть его как дубликат, или, если у вас недостаточно репутации, поднять флаг, чтобы указать, что это дубликат. В противном случае настройте свой ответ на этот вопрос, а не просто вставляйте один и тот же ответ в нескольких местах.
Дэвид Постилл
0

У меня была эта проблема некоторое время, и я наконец понял, что происходит.

Когда вы запускаете задачу с помощью планировщика задач, и это файл bat, он открывает окно cmd для C: \ WINDOWS \ system32, а НЕ там, где находится файл bat. Почему? Я понятия не имею! Итак, что мне нужно было сделать, это добавить каталог с CD в файл bat.

Пример ниже:

cd c: \ blahblahblah

startmyprogram.exe

user38300
источник
Ваш ответ создает большую путаницу, и вы не можете установить причину проблемы, с которой столкнулся OP. Лучше вам по этой ссылке superuser.com/help/how-to-answer , поможет вам при ответе.
Раджеш С