中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]关于提取文本的特定内容
作者:
标题: [求助]关于提取文本的特定内容 上一主题 | 下一主题
yxzpt
初级用户





积分 60
发帖 29
注册 2007-4-28
状态 离线
『楼 主』:  [求助]关于提取文本的特定内容

有一个文本a.txt内有字符串,随机每行一个排列,如:
567031853----02587410
346071854----04723060
978081855----09665771
............................
763301856----05615379
673501857----59152301
563701858----76464193
456501859----55819080


求助如下:新建个文本b.txt,把我随机需要的字符串保存在b.txt,如:
563701858
978081855
763301856

先求个批处理,对比2个文本,按照b.txt的内容在a.txt中提取出来保存为c.txt,并把a.txt中所提取的内容删除并保存.

谢谢

2008-4-16 18:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 2 楼』:  这不是猜谜语:

请先把你的问题讲清楚再求助,随机需要是什么意思,同是请把b.txt贴出来



批处理之家新域名:www.bathome.net
2008-4-16 18:17
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
26933062
银牌会员





积分 2268
发帖 879
注册 2006-12-19
状态 离线
『第 3 楼』:  

未测试。。
建议:先备份再测试。。。
:
@echo off
findstr /ig:b.txt a.txt>c.txt
findstr /ivg:b.txt a.txt>d.txt
del/q a.txt
ren d.txt a.txt




致精致简!
2008-4-16 18:20
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yxzpt
初级用户





积分 60
发帖 29
注册 2007-4-28
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by zw19750516 at 2008-4-16 06:17 PM:
请先把你的问题讲清楚再求助,随机需要是什么意思,同是请把b.txt贴出来

不好意思,看来我表达有问题,随机需要是指不是按排序来的,比如我现在想提取a.txt中的
346071854----04723060
456501859----55819080
673501857----59152301

我想有个批处理,只要我把上面想提取的保存在b.txt中,比如
346071854
456501859
673501857

运行批处理,a.txt和b.txt对比,把符合b.txt中的字符串按每行提取到c.txt中,如
346071854----04723060
456501859----55819080
673501857----59152301

然后再把已提取出来的字符串从a.txt中删除

表达能力有限,不知道各位高手能不能看懂

2008-4-16 18:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yxzpt
初级用户





积分 60
发帖 29
注册 2007-4-28
状态 离线
『第 5 楼』:  



  Quote:
Originally posted by 26933062 at 2008-4-16 06:20 PM:
未测试。。
建议:先备份再测试。。。
:
@echo off
findstr /ig:b.txt a.txt>c.txt
findstr /ivg:b.txt a.txt>d.txt
del/q a.txt
ren d.txt a.txt

谢谢,测试可以

2008-4-16 18:49
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yxzpt
初级用户





积分 60
发帖 29
注册 2007-4-28
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by 26933062 at 2008-4-16 06:20 PM:
未测试。。
建议:先备份再测试。。。
:
@echo off
findstr /ig:b.txt a.txt>c.txt 把所需的提取到c
findstr /ivg:b.txt a.txt>d.txt 剩下的提取到d
del/q a.txt 删除a
ren d.txt a.txt 重命名d为a

是不是这样啊?

2008-4-16 18:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bat-zw
金牌会员

永远的学习者


积分 3105
发帖 1276
注册 2008-3-8
状态 离线
『第 7 楼』:  理解是对的:

呵呵,你表达不行,理解还可以,同时说明下:findstr /v 是指只打印不匹配的行,而findstr /i是指不区分大小写(findstr默认是区分大小写的),findstr /g:是从文件获取搜索的字符串。



批处理之家新域名:www.bathome.net
2008-4-16 19:52
查看资料  发送邮件  发短消息 网志  OICQ (841615149)  编辑帖子  回复  引用回复
yxzpt
初级用户





积分 60
发帖 29
注册 2007-4-28
状态 离线
『第 8 楼』:  



  Quote:
Originally posted by zw19750516 at 2008-4-16 07:52 PM:
呵呵,你表达不行,理解还可以,同时说明下:findstr /v 是指只打印不匹配的行,而findstr /i是指不区分大小写(findstr默认是区分大小写的),findstr /g:是从文件获取搜索的字符串。

呵呵,没办法,不怎么懂,不过大概意思还明白点

2008-4-16 20:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: