中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何用脚本读取下面格式的文本文件?[已结,多谢各位。]
« [1] [2] [3] »
作者:
标题: 如何用脚本读取下面格式的文本文件?[已结,多谢各位。] 上一主题 | 下一主题
gyfhgyfh
初级用户





积分 54
发帖 25
注册 2006-9-29
状态 离线
『楼 主』:  如何用脚本读取下面格式的文本文件?[已结,多谢各位。]

如何用脚本读取下面格式的文本文件,

并取出

FileName=
Path=

后面的字符串输出到 my.txt

-----------------------------------------------------------------------------------------

[XXXXXXXX...]
FileName=***...
Path=.../

[XXXXXXXX...]
FileName=***...
Path=***.../.../

[XXXXXXXX...]
FileName=***...
Path=***.../.../...

-------------------------------------------------------------------------------------------

[ Last edited by gyfhgyfh on 2007-1-10 at 07:29 AM ]

2007-1-3 11:51
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 2 楼』:  

用VBS写的,把你要提取的文件命名为a.txt之后把下面的内容另存为ss.vbs,双击运行,注意要和a.txt文件在同一个目录下。
set fso=createobject("scripting.filesystemobject")
set file=fso.opentextfile("a.txt",1)
do while file.AtEndOfStream <> True
n=file.readline
if left(n,9)="FileName=" then m=m&right(n,len(n)-9)&vbcrlf
if left(n,5)="Path=" then m=m&right(n,len(n)-5)&vbcrlf
loop
file.close
set file=fso.createtextfile("my.txt",true)
file.write m
file.close
msgbox "提取内容成功!请查看my.txt文件。",48+4096,"操作完成"


   此帖被 +2 点积分    点击查看详情   
评分人:【 gyfhgyfh 分数: +2  时间:2007-1-5 09:38


2007-1-3 21:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 3 楼』:  


for /f "tokens=2 delims==" %%i in (test.txt) do (>>my.txt echo %%i)


   此帖被 +2 点积分    点击查看详情   
评分人:【 gyfhgyfh 分数: +2  时间:2007-1-5 09:39




三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-1-3 21:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gyfhgyfh
初级用户





积分 54
发帖 25
注册 2006-9-29
状态 离线
『第 4 楼』:  

非常好,感谢两位。

来个更复杂的,即字符出现的位置不是固定的:


如何用脚本读取下面格式的文本文件,

并取出

FileName=
Path=

后面的字符串输出到 my.txt

-----------------------------------------------------------------------------------------

[XXXXXXXX...]
XXXXX...=***...
XXXX...=.../
XXX...=...
...



[XXXXXXXX...]
XXX...=...
FileName=***...
XXX...=...
Path=.../
...


[XXXXXXXX...]
...
FileName=***...
...


[XXXXXXXX...]
FileName=***...
...
Path=***.../.../...
...

-------------------------------------------------------------------------------------------

[ Last edited by gyfhgyfh on 2007-1-3 at 10:49 PM ]

2007-1-3 22:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jmz573515
银牌会员




积分 1212
发帖 464
注册 2006-12-13
状态 离线
『第 5 楼』:  

用上面的代码一样可以完成。

2007-1-3 22:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 6 楼』:  

代码如下
for /f "tokens=1,2 delims==" %%i in (test.txt) do (
if "%%i"=="FileName" (>>my.txt echo. %%j)
if "%%i"=="Path" (>>my.txt echo. %%j)
)


   此帖被 +2 点积分    点击查看详情   
评分人:【 gyfhgyfh 分数: +2  时间:2007-1-5 09:40




三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-1-3 23:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 7 楼』:  

其实去掉echo后的.就够用了。^_^



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-1-3 23:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gyfhgyfh
初级用户





积分 54
发帖 25
注册 2006-9-29
状态 离线
『第 8 楼』:  

非常好,非常好。

现在让我们一起来继续深入,把提取到的内容按以下格式进行连接并输出:

(Path) + (FileName)

2007-1-3 23:10
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 9 楼』:  

说清楚些



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-1-3 23:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gyfhgyfh
初级用户





积分 54
发帖 25
注册 2006-9-29
状态 离线
『第 10 楼』:  

输出

[XXXXXXXX...]
XXX...=...
FileName=abc
XXX...=...
Path=c:\
...



里面的 (Path=.../ ) +  (FileName=***...)

即:c:\abc

[ Last edited by gyfhgyfh on 2007-1-3 at 11:18 PM ]

2007-1-3 23:17
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 11 楼』:  

只有一段吗?
[XXXXXXXX...]
XXX...=...
FileName=***...
XXX...=...
Path=.../
...



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-1-3 23:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gyfhgyfh
初级用户





积分 54
发帖 25
注册 2006-9-29
状态 离线
『第 12 楼』:  

-----------------------------------------------------------------------------------------

[XXXXXXXX...]
XXXXX...=***...
XXXX...=.../
XXX...=...
...



[XXXXXXXX...]
XXX...=...
FileName=***...
XXX...=...
Path=.../
...


[XXXXXXXX...]
...
FileName=***...
...


[XXXXXXXX...]
FileName=***...
...
Path=***.../.../...
...

-------------------------------------------------------------------------------------------
字符位置不固定。

2007-1-3 23:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 13 楼』:  

FileName和Path数量不等要如何对应?请讲清楚。



三人行,必有吾师焉。   学然后知不足,教然后知困,然后能自强也。
2007-1-3 23:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
gyfhgyfh
初级用户





积分 54
发帖 25
注册 2006-9-29
状态 离线
『第 14 楼』:  

先简单点吧,提取后的 my.txt 里面的内容格式已经是:

----------------------------------------------------------------
FileName=...
Path=...
FileName=...
Path=...
FileName=...
Path=...
...
----------------------------------------------------------------




如何将 my.txt 输出 Path=...FileName=...  即

----------------------------------------------------------------
c:\abc
...
----------------------------------------------------------------

2007-1-3 23:45
查看资料  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 15 楼』:  

  呵呵,这个简单,每两行合并为一行就是了。



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2007-1-3 23:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: