中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-28 19:17
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,277 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]for findstr 查找文本文件中特定的行
可打印版本  1,034 / 4
第1楼 joyoustar 发表于 2008-08-01 12:08
初级用户 发帖 45 积分 96
[求助]for findstr 查找文本文件中特定的行
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楼 pooronce 发表于 2008-08-01 12:54
中级用户 发帖 250 积分 484
for /f "skip=4 delims=" %i in (123.txt) do @echo %i|findstr "3"
第3楼 bat-zw 发表于 2008-08-01 13:11
金牌会员 发帖 1,276 积分 3,105
more +4 123.txt|findstr "3"
第4楼 joyoustar 发表于 2008-08-01 15:14
初级用户 发帖 45 积分 96
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楼 joyoustar 发表于 2008-08-02 16:57
初级用户 发帖 45 积分 96
Originally posted by bat-zw at 2008-8-1 01:11 PM:
more +4 123.txt|findstr "3"

用more命令能否显示截止到某行n(不是最后的行)或者显示到某个符号所在的行为止?
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023