Windows 循环的批处理文件不工作
我试图在下面的循环中进行迭代,当执行if error accurrence时,循环应该转到if条件并退出,但循环永远不会转到if条件总是ELSE条件被执行,检查%errorlevel%是否有问题Windows 循环的批处理文件不工作,windows,batch-file,cmd,Windows,Batch File,Cmd,我试图在下面的循环中进行迭代,当执行if error accurrence时,循环应该转到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 lo
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"......
)
)
(
括号)
中的变量只展开一次,因此当分析for
循环时,%ERRORLEVEL%
将替换为它所具有的任何值。您必须启用延迟扩展并使用!错误等级代码>,如果错误级别为
,则只需使用:
for %%a in (%LIST%) do (
call Build.bat %%a
if errorlevel 1 (
echo Exiting the loop
goto :eof
) else (
echo Successfully executed "%%a" . . .
)
)
您需要使用延迟扩展和!错误等级代码>此解决方案对我有效,谢谢