【问题标题】: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 次。

关于如何使它工作的任何想法? 谢谢!

【问题讨论】:

    标签: windows for-loop batch-file automation exit-code


    【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-02
      • 2014-06-24
      • 2017-10-27
      • 2013-01-07
      • 2011-06-07
      • 2023-03-11
      • 1970-01-01
      • 2011-02-05
      相关资源
      最近更新 更多