|
|
本帖最后由 redyear2026 于 2026-2-12 22:19 编辑
批处理脚本的 for 语块能否实现真正的 break,迄今只有采用 goto 方法被实测真正有效(且只能一次性跳出所有外包循环体),一楼的示例只是一个假象,可用以下代码验证
- @echo off
- for /l %%i in (1, 1, 5) do (
- if %%i equ 3 (verify bad >nul 2>nul & echo,尝试触发break,终止循环)
- if not errorlevel 1 (echo,执行 %%i)
- echo,验证每次循环序号=%%i
- )
- pause&exit/b
复制代码
用 goto 方法实现真正的 break,见如下示例代码
- @echo off
- for /l %%i in (1, 1, 5) do (
- if %%i equ 3 (set "l=%%i" &goto :b)
- echo,验证每次循环序号=%%i
- )
- :b
- echo,%l%
- pause&exit/b
复制代码
至于在 for 语块中实现 continue,有更简单的方法可见如下代码
- @echo off
- for /l %%i in (1, 1, 5) do if %%i neq 3 (
- rem 循环代码
- echo,执行 %%i
- )
- pause&exit/b
复制代码 |
|