这里是不使用“goto标签”而退出FOR的命令?
for %%c in (list) do ( [some code] for %%i in (1 1 100) do ( [some code] if [a condition] exit-this-for [some code] ) rem go here when exit [some code] )
我讨厌标签!
即使你讨厌标签,拒绝使用它们也会限制你的select。 我想不出一个简单的方法在一个文件中做到这一点。 如果你不讨厌使用两个batch file,你可以做这样的事情。 运行a.cmd将CALL b.cmd并根据b.cmd任何EXIT /B执行ERRORLEVEL检查。
a.cmd:
REM a.cmd @ECHO OFF SET CHECKVAR=10 CALL b.cmd IF ERRORLEVEL %CHECKVAR% ( REM go here when exit from b.cmd met condition ECHO "B was %CHECKVAR%" ) ELSE ( REM go here when exit from b.cmd did not meet condition ECHO "B was not %CHECKVAR%" )
b.cmd
REM b.cmd @ECHO OFF FOR /L %%A IN (0,1,3) DO ( ECHO "A: %%A" FOR /L %%B IN (0,1,100) DO ( ECHO "B: %%B" REM Do what ever conditional check you like here. REM Just need to return some ERRORLEVEL to a.cmd. IF %%B==%CHECKVAR% ( EXIT /B %CHECKVAR% ) ) )