无法跳出For循环到另一个For循环
问题描述:
使用批处理脚本,我正在打破内部for循环,并在外部for循环进行序列,但它返回一个错误说:无法跳出For循环到另一个For循环
The syntax of the command is incorrect
它指的是我的:断点标签。请指教。谢谢。
for /l %%A in (1, 1, %NumRuns%) do (
echo Doing run %%A of %NumRuns%
for /l %%B in (1, 1, 3) do (
ping 127.0.0.1 -n 2 > NUL
tasklist /FI "IMAGENAME eq Reel.exe" 2>NUL | find /I /N "Reel.exe">NUL
echo innerloop top
echo Error lvl is %ERRORLEVEL%
if NOT "%ERRORLEVEL%"=="0" (
echo innerloop middle
goto:breakerpoint
)
echo innerloop bottom
)
taskkill /F /IM "Reel.exe"
:breakerpoint rem this is error line
)
:end
echo end of run
pause
答
一个goto
休息总是当前代码块和当前代码块是与第一个括号开头的完整块,你的情况,你把所有嵌套FOR
一次。
为了避免这种情况,您需要使用子功能。
for /L %%A in (1, 1, %NumRuns%) do (
echo Doing run %%A of %NumRuns%
call :innerLoop
)
exit /b
:innerLoop
for /L %%B in (1, 1, 10) do (
echo InnerLoop %%B from outerLoop %%A
if %%B == 4 exit /b
)
exit /b
相关:[.BAT突破多个嵌套循环,完成各自的列表后(http://*.com/a/37041525) – aschipfl