楼 主
请问如何退出for语句
发表于 2006-08-23 22:47 · 中国 福建 福州 连江县 电信
新手上路
★
积分 8
发帖 2
注册 2006-08-21 21:50
19年会员
UID 60986
状态 离线
请问:在文件中找到所需要的行后,如何退出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 楼
发表于 2006-08-23 22:56 · 中国 四川 成都 鹏博士宽带
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
for /f "delims=: tokens=1,2" %%i in ('findstr /n . file.txt') do if "%%i"=="150" echo %%j & pause && goto 某个标签
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
第 3 楼
发表于 2006-08-24 13:03 · 中国 北京 联通
银牌会员
★★★
DOS联盟捡破烂的
积分 1,144
发帖 425
注册 2005-10-20 00:00
20年会员
UID 43784
来自 北京
状态 离线
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 楼
发表于 2006-08-25 14:59 · 中国 福建 福州 电信
新手上路
★
积分 8
发帖 2
注册 2006-08-21 21:50
19年会员
UID 60986
状态 离线
论坛跳转: