[英]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.