это команда для выхода из 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]
)
я ненавижу ярлыки!
Даже если вы ненавидите ярлыки, отказ от их использования ограничивает ваши возможности здесь. Я не могу придумать простого способа сделать это в одном файле. Если вам не противна идея использования двух командных файлов, вы можете сделать что-то вроде этого. Бег a.cmd
воля CALL b.cmd
и выполнить ERRORLEVEL
проверка на основе любых EXIT /B
в b.cmd
.
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%
)
)
)