我正在使用批处理文件运行*.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
。
有人可以给我一些关于如何做到这一点的线索吗?
答案 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"将永远是真的。