如何修复控制台窗口关闭的输出警告?

时间:2017-11-09 10:35:13

标签: windows batch-file cmd output

我正在使用批处理文件运行*.exe文件并将其结果输出到文件中。批处理文件包含以下命令:

"..\..\GeneralData\exe\executable.exe" > B:\Simulations\7642\Time_20130101_20130111\output.txt
exit

我正在扫描output.txt以查找任务成功完成的时间。当应用程序运行时没有错误,这很有效,因为"成功完成"输出字符串。问题是当发生错误时,此应用程序中的错误可能有多个代码,因此几乎不可能扫描每个选项。

我的想法是在控制台窗口关闭时执行消息(执行退出命令)并扫描output.txt试图找到"成功完成"串。如果它不存在,那就是错误。我试图做以下事情:

start /MIN cmd /c "Model.bat || call echo %^errorLevel% > exitcode.txt"

但它没有输出exitcode.txt。 有人可以给我一些关于如何做到这一点的线索吗?

1 个答案:

答案 0 :(得分:0)

在Windows控制台中,错误通常会输出到STDERR,可以通过以下方式重定向到文件:

executable.exe > output.txt 2> error.txt

如果您的" executable.exe"提供exitcodes,您可以在下一行代码中通过%errorlevel%值捕获它:

executable.exe > output.txt 2> error.txt
if errorlevel 1 process_error.txt_routine

请注意" if errorlevel"子句意味着,errorlevel等于或高于给定的数字,所以"如果errorlevel 0"将永远是真的。