标题: [文本处理] 批处理如何把两个文本文档里相同的内容去掉? [打印本页]
作者: jonm 时间: 2012-6-18 20:54 标题: 批处理如何把两个文本文档里相同的内容去掉?
请教各高朋友
如何把B文本文档里和A文本文档里相同的内容去掉
如:
A文本文档:
1234
2345
4324
B文本文档:
2348
9876
7658
6540
1234
2345
生成C文本文档
2348
9876
7658
6540
请大家帮助,谢谢
作者: weichenxiehou 时间: 2012-6-18 21:29
如果b.txt为大文件,只保留b.txt剩下的部分:- findstr /vix /g:a.txt b.txt>c.txt
复制代码
如果a.txt为大文件,只保留a.txt剩下的部分:- findstr /vix /g:b.txt a.txt>c.txt
复制代码
如果两者的不同部分均保留:- findstr /vix /g:a.txt b.txt>c.txt
- findstr /vix /g:b.txt a.txt>>c.txt
复制代码
作者: poter 时间: 2012-6-18 21:32
用findstr会更简单,用循环效率不高
@echo off
setlocal enableDelayedExpansion
for /f "tokens=*" %%i in (b.txt) do (
for /f "tokens=*" %%j in (a.txt) do (
if not "%%i"=="%%j" set /a a+=1
if "!a!"=="3" echo %%i
)
set a=
)
作者: jonm 时间: 2012-6-18 22:57
非常谢谢,我先试试
作者: jonm 时间: 2012-6-18 23:05
请问二位大大
这个要怎么用
不是用的批处理吗
作者: jonm 时间: 2012-6-18 23:06
回复 3# poter
你好,这个是怎么用,
不是生成批处理文件吗
请指导,谢谢
作者: jonm 时间: 2012-6-18 23:17
请大大们指导
作者: forfiles 时间: 2012-6-18 23:32
回复 5# jonm
是用的批处理
作者: jonm 时间: 2012-6-19 00:51
回复 3# poter
你好,我把你的代码另存为BAT格式,再在同一文件夹里建工a 和 b二个文本.填上内容后,再启动批处理,没出现什么结果啊,请再指导,谢谢
作者: jonm 时间: 2012-6-19 07:09
请指导,谢谢
作者: jonm 时间: 2012-6-19 18:50
请高手指导,谢谢
作者: forfiles 时间: 2012-6-19 19:18
回复 9# jonm
在最后增加一行:
pause
作者: jonm 时间: 2012-6-19 20:00
回复 3# poter
你好,对不起,还是要打扰你
我加了后,没有产生对比,没有生C 文本
能加一下你的QQ指导我行吗,谢谢
作者: powerbat 时间: 2012-6-19 20:14
回复 13# jonm
莫非楼主以为2楼的代码不是批处理?
作者: forfiles 时间: 2012-6-19 20:15
回复 13# jonm - @echo off
- setlocal enableDelayedExpansion
- (for /f "tokens=*" %%i in (b.txt) do (
- for /f "tokens=*" %%j in (a.txt) do (
- if not "%%i"=="%%j" set /a a+=1
- if "!a!"=="3" echo %%i
- )
- set a=
- ))>c.txt
复制代码
作者: poter 时间: 2012-6-20 21:28
不好意思,其实这个批处理的作用很有限的,如果文本有多列,它就不管用了。
而且如果a文本不止三行,还要先判定一个行数。
楼主最好把你的文本完完整整的贴出来,这样别人才能根据你的情况来解决
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |