如何在批处理文件脚本的循环中打印程序的返回值?
Posted
技术标签:
【中文标题】如何在批处理文件脚本的循环中打印程序的返回值?【英文标题】:How do I print the return value of a program in a loop in a batch file script? 【发布时间】:2013-08-26 12:10:47 【问题描述】:任务是运行一个程序(同一个程序)十次,每次运行输出退出代码(主函数的返回值)。所以我想运行一个批处理文件(Windows),像这样:
FOR /l %%x IN (1,1,10) DO (
AutomatedTest.exe cip.log
ECHO %ERRORLEVEL%
)
如果您凭直觉思考,上面的代码应该可以做到,但它不起作用,因为它正在运行的代码实际上是:
(
AutomatedTest.exe cip.log
ECHO 0
)
这首曲子执行了 10 次。
关于如何使它工作的任何想法? 谢谢!
【问题讨论】:
【参考方案1】:你需要的是延迟变量扩展:
FOR /l %%x IN (1,1,10) DO (
AutomatedTest.exe cip.log
ECHO !ERRORLEVEL!
)
要启用延迟变量扩展,请在批处理之前使用 SETLOCAL ENABLEDELAYEDEXPANSION
或使用 CMD.EXE /V:ON
启动命令 shell。
另一种方法是使用子程序:
FOR /l %%x IN (1,1,10) DO CALL :Test
GOTO :EOF
:Test
AutomatedTest.exe cip.log
ECHO %ERRORLEVEL%
GOTO :EOF
另一种方法是使用IF ERRORLEVEL
。
【讨论】:
以上是关于如何在批处理文件脚本的循环中打印程序的返回值?的主要内容,如果未能解决你的问题,请参考以下文章