Як відключити автоматичне закриття командного рядка після завершення?


18

Я знаю, що для цього було кілька хитрощів зі старими версіями Windows, але не впевнені в Windows 7.

Якщо у мене був фрагмент програмного забезпечення, яке виконує команду з перемикачами, в результаті чого вікно cmd.exe відкривається та закривається швидко, як я можу переконфігурувати командний рядок НЕ автоматично закритись, коли завдання буде виконано.

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


Добре запитання, тихо я також хотів, щоб я знав це, тому що іноді ігрові / програмні патчі надходять .BAT файли закриваються після того, як інструкції виконуються без пауз і не відображаються виконані команди кінцевому користувачеві.
Boris_yo

1
Чому б не відкрити вікно команд, CD в цей каталог і запустити пакет звідти? Це запускається у тому ж незамкненому cmd-вікні, яке залишатиметься відкритим, коли пакет закінчується. Це може дати вам декілька підказок, які допоможуть налагодити це.
jdh


Дякую slhck, ти вказуєш мені на це місце, схоже, найближча можливість досягти того, що я хочу, - це в реєстрі для batfile / cmdfile.
Міфіки

Відповіді:


8

Замість того, щоб запускати цей .batфайл безпосередньо з Провідника або будь-якого іншого методу, який ви використовуєте, запустіть вручну cmd.exe(якщо потрібно з підвищеними привілеями), а потім запустіть свій.bat файл звідти. Тоді після завершення його виконання ви все одно побачите всі результати ... як і в старі добрі дні DOS. :)


Натисніть пуск і введіть cmdі натисніть enter, ви запустите командний рядок. Просто перетягніть те, що потрібно запустити (сценарій python або .exe) у вікна cmd, і натисніть enter.
JinSnow

6

У файлі .bat використовуйте pauseкоманду. Це запобіжить закриттю файлу .bat.

Наприклад, це мій файл bat, який я використовую для запуску служби MySQL на своєму ПК:

net start MySQL
pause

Примітка. У Windows 7 я запускаю цей .bat файл від імені адміністратора. Для цього натисніть праву кнопку миші на вашому файлі .bat та виберіть зі спадного меню пункт «Почати від імені адміністратора».


5

Під час дзвінка потрібно використовувати перемикач / k.

Корисні подробиці тут .


1

У сценарії .bat ви залишаєте "вихід" в кінці сценарію, щоб залишити вікно команд відкритим.

Вікно команд, відкрите скриптом, завжди закривається в кінці сценарію, оскільки це залежить від сценарію. Відкриття вікна самостійно та запуск сценарію не закриває вікно, якщо ви не вказали команду "вихід" в кінці сценарію, оскільки вікно не залежить від сценарію.

Здається, не існує способу запобігти закриттю вікна, що залежить від сценарію, після того, як скрипт закінчиться в Windows 7. Однак, можливо, повідомлення про помилки були б записані в іншому місці. Чи програма має файл журналу? Або в журналах Windows є записи?


0
pause>nul

це має працювати.


2
Будь ласка, прочитайте запитання ще раз уважно. Ваша відповідь не відповідає на початкове запитання. "Хитрість тут полягає в тому, що команда, що виконується, дійсно є пакетним файлом, включає кінець заяви про паузу ",
DavidPostill

0

Натисніть startі введіть cmdі натисніть enter, ви запустите командний рядок. Просто перетягніть те, що потрібно запустити (сценарій python, .exe ...) у вікна cmd, і натисніть клавішу Enter. (Якщо вам потрібно запустити cmd як адміністратор, знайдіть cmd у меню запуску, клацніть правою кнопкою миші, виберіть run as admin) (Працює у Windows 7)


Будь ласка, не публікуйте однакову відповідь на кілька запитань. Якщо однакова інформація дійсно відповідає на обидва запитання, то одне питання (як правило, нове) має бути закрите як дублікат іншого. Ви можете вказати це, проголосувавши, щоб закрити його як дублікат або, якщо у вас недостатньо репутації для цього, підняти прапор, щоб вказати, що це дублікат. В іншому випадку підгадуйте свою відповідь на це питання і не просто вставляйте однакову відповідь у декілька місць.
DavidPostill

0

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

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

Приклад нижче:

cd c: \ blahblahblah

startmyprogram.exe


Ваша відповідь створює багато плутанини, і ви не в змозі встановити причину виникнення проблеми ОП. Краще перейдіть за цим посиланням superuser.com/help/how-to-answer , допоможе вам у відповіді.
Раджеш S
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.