簡體   English   中英

如何在批處理文件腳本中循環打印程序的返回值?

[英]How do I print the return value of a program in a loop in a batch file script?

任務是運行一個程序(同一程序)十次,並在每次運行時輸出退出代碼(主函數的返回值)。 所以我想運行一個批處理文件(Windows),像這樣:

FOR /l %%x IN (1,1,10) DO (
    AutomatedTest.exe cip.log
    ECHO %ERRORLEVEL%
)

如果您憑直覺思考,上面的代碼應該可以執行此操作,但是它不起作用,因為它正在運行的代碼實際上是:

(
    AutomatedTest.exe cip.log
    ECHO 0
)

並執行10次。

關於如何使其運作的任何想法? 謝謝!

您需要的是延遲變量擴展:

FOR /l %%x IN (1,1,10) DO (
    AutomatedTest.exe cip.log
    ECHO !ERRORLEVEL!
)

要啟用延遲的變量擴展,請在批處理之前使用SETLOCAL ENABLEDELAYEDEXPANSION或使用CMD.EXE /V:ON啟動命令外殼。

另一種方法是使用子例程:

FOR /l %%x IN (1,1,10) DO CALL :Test
GOTO :EOF

:Test
AutomatedTest.exe cip.log
ECHO %ERRORLEVEL%
GOTO :EOF

另一種方法是使用IF ERRORLEVEL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM