Проблема с командой `pause` при перенаправлении журнала командной строки в файл - PullRequest
5 голосов
/ 17 июня 2011

Допустим, мы выполняем команду, как показано ниже, и перенаправляем вывод консоли в текстовый файл.

Моя проблема в том, что в пакетном скрипте есть команды pause, и при таком перенаправлении я не могу знать, когда нажать Enter, чтобы продолжить пакет.

Пожалуйста, помогите мне получитьПакет «игнорирует» команды pause без изменения самого пакета.Я предпочитаю использовать синтаксис перенаправления / канала.

MyBatchScriptWithPause.bat > SomeFile.txt

Ответы [ 3 ]

3 голосов
/ 18 июня 2011
MyBatchScriptWithPause.bat > SomeFile.txt < nul

nul - это устройство DOS, которое будет предоставлять бесконечные нулевые данные, поэтому оно будет действовать как ввод, когда скрипту понадобятся некоторые данные.Он по-прежнему доступен даже в современных версиях Windows.

3 голосов
/ 17 июня 2011

Это должно сделать это:

 (echo.&echo.&echo.&echo.) | MyBatchScriptWithPause.bat > somefile.txt

при условии, что никакая другая команда не ожидает ввода пользователя в этом пакетном файле.

Редактировать
Предполагается также, что в этом файле содержится только одна команда single pause. В противном случае предложение Андрея должно сработать.

1 голос
/ 17 июня 2011

Я не уверен в игнорировании пауз, но вы можете перенаправить их на стандартную ошибку:

pause 1>&2

, который позволит вам узнать, когда произошла пауза.

...