我在批处理脚本中有一些功能:
:run
set "CMD=%*"
<...>
timeout 300s !CMD!
if %errorlevel% equ 0 (
echo !CMD! >> ./!_tool!.OK
) else (
echo !CMD! >> ./!_tool!.FAIL
echo exitcode= %errorlevel% >> ./FAIL
echo ===STOP=== %date% %time%
exit /b %errorlevel%
)
exit /b %errorlevel%
并在主循环中检查其%errorlevel%代码:
for /f "tokens=*" %%t in (%TEST_LIST%) do (
<...>
call :run %TOOL% -O0 -S %REPO_PATH%\%%t
if %errorlevel% equ 0 (
echo %%t PASSED
) else (
echo %%t FAILED
)
但timeout 300s !CMD!
返回错误级别1并将exit /b %errorlevel%
返回为1(正在创建./!_tool!.FAIL
等等)的问题不会影响主循环的IF和即将获得echo %%t PASSED
无论如何。
无法通过这种方式检查功能返回码或什么?
P.S。一些&lt; ...&gt;代码工作正常,所以我把它剪掉了
答案 0 :(得分:0)
感谢@Stephan我发现了我的问题 - 我应该在FOR循环中使用composer require geoip2/geoip2:~2.4.0
而不是!errorlevel!
,因此它应该刷新每次迭代