[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理怎样跳出for /l的循环?

本帖最后由 pcl_test 于 2017-4-17 14:10 编辑
  1. @echo off
  2. for /l %%i in (1,1,100) do (
  3.   echo 1
  4.   for /l %%i in (1,1,100) do (
  5.     echo 2
  6.     ::插入跳出代码
  7.   )
  8.   echo %%i
  9. )
复制代码
这只是个例子,不要用别的代码实现同样功能,只要跳出的代码

跳不出来,if一下吧。

TOP

设标号在for内,if.....goto可以吗??

TOP

回复 3# ht河豚


不行的。你可以试一试。:-)

TOP

加个计数器,然后满足条件if goto到结尾处就行了

TOP

楼上什么意思,怎么跳到结尾处??

TOP

原代码基础上只能一次跳出所有FOR;

结构要改变,不然无法只跳出里层。
  1. @echo off
  2. for /l %%i in (1,1,100) do (
  3.  echo 1
  4.  CALL :INFOR
  5.  echo %%i
  6. )
  7. GOTO :EOF
  8. :INFOR
  9. for /l %%i in (1,1,100) do (
  10.  echo 2
  11.  rem ::插入跳出代码
  12.  GOTO :OUTFOR
  13. )
  14. :OUTFOR
复制代码
如无特别说明,代码测试环境均为 XP SP3

TOP

@echo off
for /l %%i in (1,1,100) do (
  echo 1
  for /l %%i in (1,1,100) do (
    echo 2
  )&goto end
  echo %%i——不过这一行可能无法正常显示!
)
pause&exit

:end
echo 跳出成功
pause&exit
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

谢谢大家,问题解决了

TOP

回复 8# cjiabing


    看起来是跳出成功,其实是假象。不信把两个100都换成100000试试,是不是变慢了?说明循环总是要执行完的,只是“跳出”后会得到正确的结果而已。

TOP

问题怎么解决的?

TOP

返回列表