中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 求助:关于FOR命令的疑问 上一主题 | 下一主题
muddle
初级用户





积分 22
发帖 8
注册 2006-11-24
状态 离线
『楼 主』:  求助:关于FOR命令的疑问

有一文本文件内容为:(是DIR导出的)

驱动器 F 中的卷是 OFFICE11
卷的序列号是 F386-784C

F:\ 的目录

2003/08/15  21:31    <DIR>          FILES
2003/08/15  21:30    <DIR>          MSDE2000
2003/08/15  17:59           556,544 OWC10.MSI
2003/08/15  18:02           601,088 OWC11.MSI
2003/08/15  21:56         6,009,344 PRO11.MSI
2003/07/31  17:52             6,533 README.HTM
2003/07/15  14:01           418,872 SETUP.EXE
2003/07/10  17:44            19,013 SETUP.HTM
2004/09/20  08:56                29 SN.TXT
               7 个文件      7,611,423 字节
               2 个目录              0 可用字节

想用FOR命令把这个文件的前4行和后2行过滤掉(这几行的相同点是以空格开头的),把中间文件和目录的全部内容复制为另一个文本文件。

我用了
for /f "eol= tokens=*" %%i  in (1.txt) do @(for %%i IN (%%i) DO @echo %%i >>2.txt)

只能一段一段的导出
2.txt内容成了:

驱动器
F
中的卷是
OFFICE11
卷的序列号是
F386-784C
F:\
的目录
2003/08/15
21:31
<DIR>
FILES
2003/08/15
21:30
<DIR>
MSDE2000
2003/08/15
17:59
556
544
OWC10.MSI
2003/08/15
18:02
601
088
OWC11.MSI
2003/08/15
21:56
6
009
344
PRO11.MSI
2003/07/31
17:52
6
533
README.HTM
2003/07/15
14:01
418
872
SETUP.EXE
2003/07/10
17:44
19
013
SETUP.HTM
2004/09/20
08:56
29
SN.TXT
7
个文件
7
611
423
字节
2
个目录
0
可用字节


也没有过滤掉以空格开头的行,也没有整行导出。
请教高手

[ Last edited by muddle on 2007-11-23 at 09:29 AM ]

2007-11-23 09:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  

貌似不能用eol来过滤以空格开头的行,试试dir | findstr "^[0-9]"。

2007-11-23 11:59
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
upsco
初级用户





积分 67
发帖 32
注册 2007-11-19
状态 离线
『第 3 楼』:  

哦,我搞错了

[ Last edited by upsco on 2007-11-23 at 12:22 PM ]

2007-11-23 12:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
upsco
初级用户





积分 67
发帖 32
注册 2007-11-19
状态 离线
『第 4 楼』:  

前4行好搞后 more +4<1.txt,后2行不知大家有没有什么好方法

2007-11-23 12:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
muddle
初级用户





积分 22
发帖 8
注册 2006-11-24
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by lxmxn at 2007-11-23 11:59 AM:
貌似不能用eol来过滤以空格开头的行,试试dir | findstr "^[0-9]"。

用这个解决了dir | findstr "^[0-9]"。

2007-11-23 13:17
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
upsco
初级用户





积分 67
发帖 32
注册 2007-11-19
状态 离线
『第 6 楼』:  

刚在看旧贴的时候发现FOR的一个另类用法:
for /f "delims= eol= " %% i in (1.txt) echo %%i

颠倒eol  delims的位置后,eol= 能忽略空格开头的行

2007-11-23 18:36
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: