[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理如何把两个文本文档里相同的内容去掉?

请教各高朋友
如何把B文本文档里和A文本文档里相同的内容去掉

如:
A文本文档:
1234
2345
4324
B文本文档:
2348
9876
7658
6540
1234
2345
生成C文本文档
2348
9876
7658
6540

请大家帮助,谢谢

如果b.txt为大文件,只保留b.txt剩下的部分:
  1. findstr /vix /g:a.txt b.txt>c.txt
复制代码
如果a.txt为大文件,只保留a.txt剩下的部分:
  1. findstr /vix /g:b.txt a.txt>c.txt
复制代码
如果两者的不同部分均保留:
  1. findstr /vix /g:a.txt b.txt>c.txt
  2. findstr /vix /g:b.txt a.txt>>c.txt
复制代码
看得多说得多,远比不上写得多。

TOP

用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=
)

TOP

非常谢谢,我先试试

TOP

请问二位大大
这个要怎么用
不是用的批处理吗

TOP

回复 3# poter
你好,这个是怎么用,
不是生成批处理文件吗
请指导,谢谢

TOP

请大大们指导

TOP

回复 5# jonm


    是用的批处理

TOP

回复 3# poter
你好,我把你的代码另存为BAT格式,再在同一文件夹里建工a  和 b二个文本.填上内容后,再启动批处理,没出现什么结果啊,请再指导,谢谢

TOP

请指导,谢谢

TOP

请高手指导,谢谢

TOP

回复 9# jonm


在最后增加一行:
pause

TOP

回复 3# poter


    你好,对不起,还是要打扰你
我加了后,没有产生对比,没有生C 文本
能加一下你的QQ指导我行吗,谢谢

TOP

回复 13# jonm


    莫非楼主以为2楼的代码不是批处理?

TOP

回复 13# jonm
  1. @echo off
  2. setlocal enableDelayedExpansion
  3. (for /f "tokens=*" %%i in (b.txt) do (
  4.     for /f "tokens=*" %%j in (a.txt) do (
  5.         if not "%%i"=="%%j" set /a a+=1
  6.         if "!a!"=="3" echo %%i
  7.     )
  8.     set a=
  9. ))>c.txt
复制代码

TOP

返回列表