2011-06-17 157 views
5

假設我們執行如下命令並將控制檯輸出重定向到文本文件中。將命令行日誌重定向到文件時出現`pause`命令問題

我的問題是批處理腳本中有pause命令,並且像這樣重定向時,我無法知道何時按Enter鍵以繼續批處理。

請幫助我在不更改批處理的情況下讓批處理「忽略」pause命令。我更喜歡獲得一些重定向/管道語法。

MyBatchScriptWithPause.bat > SomeFile.txt 

回答

3

這應做到:

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

假設沒有其他命令在該批處理文件希望用戶輸入。

編輯
它還假定只有pause命令在該文件中。否則,安德里的建議應該工作。

+1

該OP說:*'暫停**命令**'*。我認爲,而不是`echo x`它可能是`type file.txt`,其中`file.txt`是一個空行數很少的文件。 – 2011-06-17 11:47:39

+1

儘管`(echo。&echo。&echo。&echo。)| MyBatchScriptWithPause.bat> somefile.txt`也可能起作用。 – 2011-06-17 11:49:07

+0

@Andriy:謝謝你的提示 – 2011-06-17 12:42:39

1

我不知道無視暫停,但你可以將它們重定向到標準錯誤:

pause 1>&2 

這將讓你知道當發生暫停。

3
MyBatchScriptWithPause.bat > SomeFile.txt < nul 

nul是一個DOS設備將提供無限的空數據,所以每當腳本需要一些它將作爲輸入。即使在現代Windows版本上它仍然可用。