中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-07-30 05:45
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]for findstr 查找文本文件中特定的行 查看 904 回复 4
楼 主 [求助]for findstr 查找文本文件中特定的行 发表于 2008-08-01 12:08 ·  中国 四川 德阳 电信
初级用户
积分 96
发帖 45
注册 2007-03-20 06:24
19年会员
UID 82322
性别 男
状态 离线
1.比如有一文本文件123.txt内容如下:
1
22
333
4444
55555
44444
33333
22222
1
12
123
1234
12345
2.我需要用for语句先忽略前面n行(比如4行),然后在解析的字符串中用find或者findstr查找有数字3的行并显示出来。最后效果如下:
33333
123
1234
12345
3.请问用for,find或findstr等语句怎样写(尽量不要用临时文件)?谢谢指教!

[ Last edited by joyoustar on 2008-8-1 at 12:10 PM ]
2 发表于 2008-08-01 12:54 ·  中国 上海 浦东新区 电信
中级用户
★★
积分 484
发帖 250
注册 2007-06-05 23:33
19年会员
UID 90372
性别 男
状态 离线
for /f "skip=4 delims=" %i in (123.txt) do @echo %i|findstr "3"
3 发表于 2008-08-01 13:11 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
18年会员
UID 112398
性别 男
状态 离线
more +4 123.txt|findstr "3"
批处理之家新域名:www.bathome.net
4 发表于 2008-08-01 15:14 ·  中国 四川 德阳 电信
初级用户
积分 96
发帖 45
注册 2007-03-20 06:24
19年会员
UID 82322
性别 男
状态 离线
Originally posted by pooronce at 2008-8-1 12:54 PM:
for /f "skip=4 delims=" %i in (123.txt) do @echo %i|findstr "3"

谢谢!但不知怎的,文本文件中如果有“:\”,用findstr ":\"查找就会出错,也即
for /f "skip=4 delims=" %i in (123.txt) do @echo %%i|findstr ":\" 会出错,不会出现查询结果,好象和“\”符号有关,用find就可以。还有就是查询效率不高。
5 发表于 2008-08-02 16:57 ·  中国 四川 德阳 电信
初级用户
积分 96
发帖 45
注册 2007-03-20 06:24
19年会员
UID 82322
性别 男
状态 离线
Originally posted by bat-zw at 2008-8-1 01:11 PM:
more +4 123.txt|findstr "3"

用more命令能否显示截止到某行n(不是最后的行)或者显示到某个符号所在的行为止?
论坛跳转: