18

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

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

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

7 ответов7

8

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

6

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

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

net start MySQL
pause

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

5

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

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

1

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

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

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

0

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

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

Пример ниже:

cd c:\blahblahblah

startmyprogram.exe

0
pause>nul

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .