![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-15 12:52 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,268 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 如何用脚本读取下面格式的文本文件?[已结,多谢各位。] |
| 可打印版本 5,602 / 33 |
| 第16楼 namejm | 发表于 2007-01-04 00:07 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
为了让你看到效果,做个演示代码:
|
|
| 第17楼 jmz573515 | 发表于 2007-01-04 00:22 |
| 银牌会员 发帖 464 积分 1,212 | |
|
set fso=createobject("scripting.filesystemobject")
set file=fso.opentextfile("a.txt",1) do while file.AtEndOfStream <> True m="%%%%%%%%%%%%%%%%%" n=file.readline if left(n,9)="FileName=" then a=right(n,len(n)-9)&vbcrlf if left(n,5)="Path=" then m=right(n,len(n)-5)&a if m<>"%%%%%%%%%%%%%%%%%" then mm=mm&m m="%%%%%%%%%%%%%%%%%" loop file.close set file=fso.createtextfile("my.txt",true) file.write mm file.close msgbox "提取内容成功!请查看my.txt文件。",48+4096,"操作完成" |
|
| 第18楼 gyfhgyfh | 发表于 2007-01-04 00:40 |
| 初级用户 发帖 25 积分 54 | |
|
多谢各位,终于明白了。
祝大家新年快乐!!! |
|
| 第19楼 ccwan | 发表于 2007-01-04 04:36 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
test.txt内容如下:
my.bat代码如下: |
|
| 第20楼 ccwan | 发表于 2007-01-04 04:39 |
| 金牌会员 发帖 1,160 积分 2,725 来自 河北廊坊 | |
|
运行结果
my.txt内容如下: |
|
| 第21楼 gyfhgyfh | 发表于 2007-01-04 05:16 |
| 初级用户 发帖 25 积分 54 | |
|
多谢 ccwan ,这次给出的脚本已经非常完善了。
脚本的功能真是强大! 再次感谢各位。 |
|
| 第22楼 gyfhgyfh | 发表于 2007-01-05 02:21 |
| 初级用户 发帖 25 积分 54 | |
|
这个该如何解决???
提取 text.txt ---------------------------------------------- ab.exe 2006.10.26 c:\my\ cde.com 2007.1.1 d:\ f.bat 2007.1.3 c:\ ... ----------------------------------------------- 输出为 list.txt ---------------------------------------------- c:\my\ab.exe 2006.10.26 d:\cde.com 2007.1.1 c:\f.bat 2007.1.3 ... ----------------------------------------------- 然后通过比较不同的 list.txt 提取出最新的文件列表 -------------------------------------------------------- c:\my\ab.exe 2006.10.26 d:\cde.com 2007.1.1 c:\f.bat 2007.1.3 ... -------------------------------------------------------- -------------------------------------------------------- c:\my\ab.exe 2007.10.26 d:\cde.com 2007.1.1 c:\f.bat 2007.1.3 ... -------------------------------------------------------- 即 -------------------------------------------------------- c:\my\ab.exe 2007.10.26 ... -------------------------------------------------------- [ Last edited by gyfhgyfh on 2007-1-5 at 02:38 AM ] |
|
| 第23楼 jmz573515 | 发表于 2007-01-05 03:00 |
| 银牌会员 发帖 464 积分 1,212 | |
| 第24楼 jmz573515 | 发表于 2007-01-05 03:06 |
| 银牌会员 发帖 464 积分 1,212 | |
|
没有明白你说的“然后通过比较不同的 list.txt 提取出最新的文件列表”是什么意思?
|
|
| 第25楼 namejm | 发表于 2007-01-05 03:18 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
jmz573515 兄的代码不错。
若要用批处理来提取test.txt的内容,在16楼的演示代码上稍作修改即可。因为考虑到路径中有可能含有特殊字符,比如空格、&、!等符号,所以生成 list.txt 的时候,把路径用引号括起来了: 至于比较两个文件的内容,则比较复杂,暂时还没想到怎样才能提取到最新的记录——如果两个list.txt中的记录是一一对应的、只是时间有所不同,则比较好办一点。 [ Last edited by namejm on 2007-1-4 at 02:19 PM ] |
|
| 第26楼 gyfhgyfh | 发表于 2007-01-05 03:33 |
| 初级用户 发帖 25 积分 54 | |
|
A.txt
--------------------------------- c:\my\ab.exe 2006.10.26 d:\cde.com 2007.1.1 c:\f.bat 2007.1.3 --------------------------------- B.txt --------------------------------- c:\my\ab.exe 2007.10.26 d:\cde.com 2007.1.1 c:\f.bat 2007.1.3 --------------------------------- fc A.txt B.txt > my.txt --------------------------------- 正在比较文件 A.txt 和 B.TXT ***** A.txt c:\my\ab.exe 2006.10.26 d:\cde.com 2007.1.1 ***** B.TXT c:\my\ab.exe 2007.10.26 d:\cde.com 2007.1.1 ***** --------------------------------- 如何只提取时间最近的 c:\my\ab.exe 2007.10.26 |
|
| 第27楼 namejm | 发表于 2007-01-05 03:54 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
用 FC 来比较文本,会输出很多无用的干扰信息,要想提取到有用的信息将十分烦琐,不推荐用它来做比较。
还是那个问题:不同的list.txt中,每条记录都是一一对应的、只是时间有所不同吗?如果是这样的话,那就十分好办了。 |
|
| 第28楼 gyfhgyfh | 发表于 2007-01-05 05:16 |
| 初级用户 发帖 25 积分 54 | |
Originally posted by namejm at 2007-1-5 03:54: 正如您所说, 不同的list.txt中,每条记录都是一一对应的.只是时间有所不同。 该如何解决??? listA.txt --------------------------------- c:\my\ab.exe 2006.10.26 d:\cde.com 2007.1.1 c:\f.bat 2007.1.3 --------------------------------- listB.txt --------------------------------- c:\my\ab.exe 2007.10.26 d:\cde.com 2007.1.1 c:\f.bat 2007.1.3 --------------------------------- [ Last edited by gyfhgyfh on 2007-1-5 at 05:28 AM ] |
|
| 第29楼 namejm | 发表于 2007-01-05 05:49 |
| 荣誉版主 发帖 1,737 积分 5,226 来自 成都 | |
|
给你一段演示代码,用于显示两个文件的对应行不同的行内容,效率比较低下:
|
|
| 第30楼 gyfhgyfh | 发表于 2007-01-05 06:07 |
| 初级用户 发帖 25 积分 54 | |
|
非常感谢 namejm jmz573515 ccwan 的帮助。谢谢。
[ Last edited by gyfhgyfh on 2007-1-5 at 06:11 AM ] |
|
| 上一页 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |