我试图迭代下面的循环,同时执行如果发生错误循环应该进入IF条件并退出但循环永远不会进入IF条件总是执行ELSE条件,检查%errorlevel%是否有任何问题?
SET list=clean all cfg1
CD "C:\SW\CONS\build"
FOR %%a IN (%list%) DO (
CALL build.bat %%a
IF %errorlevel% neq 0 (
echo Exiting the loop
EXIT /B %errorlevel%
) ELSE (
echo Successfully executed "%%a"......
)
)
答案 0 :(得分:0)
(
个括号)
内的变量只展开一次,因此%ERRORLEVEL%
将被解析为for
循环时的值。您必须启用延迟展开并使用!ERRORLEVEL!
,或者只使用if errorlevel
:
for %%a in (%LIST%) do (
call Build.bat %%a
if errorlevel 1 (
echo Exiting the loop
goto :eof
) else (
echo Successfully executed "%%a" . . .
)
)