|
|
发表于 2023-7-20 19:29:15
|
显示全部楼层
代码已作如下订正。看那些纯P老玩家已经不深究 for/L 能否立即退出循环的问题了,切磋的只是如何“尽快”退出的“妙计高招”。for/L 的循环量一旦过万,钝感即现,上十万就相当吃力了... 好在批处理脚本勉为其难的企业级(大数量规模)应用,都有更高效的成熟解决方案,仅脚本而言,前有vbs/jscript/mshta/awk/...,后有powershell/python/... 着实省去了以往纯P非要在“螺蛳壳里作道场”的艰难曲折了...
- ::题型一》采用开关变量+if 语块包裹循环体 不用goto》耗时约2s
- set "#break="
- for /L %%n in (1,1,320000) do if not defined #break (set "n=%%n" &set #break=1)
- echo,%n%
- pause &exit/b
- ::题型二》采用 goto+if 语块包裹循环体》耗时1.6s
- for /L %%n in (1,1,320000) do if %%n equ 1 (set "n=%%n" &goto[outLoop])
- :[outLoop]
- echo,%n%
- pause &exit/b
- ::题型三》采用 goto,不采用 if 语块包裹循环体》耗时约1s
- for /L %%n in (1,1,320000) do (set "n=%%n" &goto[outLoop])
- :[outLoop]
- echo,%n%
- pause &exit/b
复制代码 |
|