中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 00:31
48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行
DOS批处理 & 脚本技术(批处理室) » 请问如何退出for语句
可打印版本  1,431 / 3
第1楼 er11 发表于 2006-08-23 22:47
新手上路 发帖 2 积分 8
请问如何退出for语句
请问:在文件中找到所需要的行后,如何退出for语句

例如,有一个很长的文件,比如几千多行的文件file.txt,
用for语句:


……
for /f "delims=: tokens=1,2" %%i in ('findstr /n . file.txt') do if "%%i"=="150" echo %%j
pause
……



要求修改后:一旦找到并显示150行的内容后,就退出for,执行后续语句。
如果不退出,可能后面还有几千行等着搜索,效率低下。


这个具体问题只是个例子,不是主要目的,
主要目的是想知道 有没有方法退出for循环。

[ Last edited by er11 on 2006-8-23 at 22:48 ]
第2楼 namejm 发表于 2006-08-23 22:56
荣誉版主 发帖 1,737 积分 5,226 来自 成都
for /f "delims=: tokens=1,2" %%i in ('findstr /n . file.txt') do if "%%i"=="150" echo %%j & pause && goto 某个标签
第3楼 bagpipe 发表于 2006-08-24 13:03
银牌会员 发帖 425 积分 1,144 来自 北京
for /f "delims=: tokens=1,2" %%i in ('findstr /n . file.txt') do if "%%i"=="150" echo %%j &exit /b

for /f "delims=: tokens=1,2" %%i in ('findstr /n . file.txt') do if "%%i"=="150" echo %%j &goto :eof

对于楼主的要求,这样也是可以的

[ Last edited by bagpipe on 2006-8-24 at 13:06 ]
第4楼 er11 发表于 2006-08-25 14:59
新手上路 发帖 2 积分 8
多谢楼上两位的解答~~
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023