2011-06-17 154 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版本上它仍然可用。