Windows批处理脚本:将所有输出redirect到一个文件

我正在运行各种Java基准,并希望归档结果。 我执行这个(dacaco)基准testing:

C:\VM\jre\bin\java -jar C:\benchmarks\dacapo-9.12-bach.jar %arg1% > %time::=% 

我通过一个参数来传递基准types,这就是%arg1%。

你可以看到我将输出redirect到一个文本文件。 不幸的是,输出的第一行和最后一行仍然在控制台中打印,而不是在文本文件中:

 ===== DaCapo 9.12 luindex starting ===== ===== DaCapo 9.12 luindex PASSED in 2000 msec ===== 

特别是最后一行在文本文件中将是重要的:)

有没有强制这种行为的伎俩?

您必须重定向STDOUT和STDERR。

command > logfile 2>&1

将2>&1添加到您的命令中:

  C:\VM\jre\bin\java -jar C:\benchmarks\dacapo-9.12-bach.jar %arg1% 2>&1 > %time::=% 

这会将STDERR重定向到STDOUT,然后将其重定向到您的文本文件中。