找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 38260|回复: 12

[文本处理] 如何用BAT批处理对比两个TXT文件的不相同内容并保存到另一个TXT

[复制链接]
发表于 2019-2-22 15:28:57 | 显示全部楼层 |阅读模式
例如:如何用BAT批处理对比两个TXT文件的相同内容并保存到另一个TXT
  1. @echo off & title 提取两个文本中相同的内容行

  2. ::设置比对文件A
  3. set A=1.txt

  4. ::设置比对文件B
  5. set B=2.txt

  6. echo 比对提取中。。。。
  7. (for /f "usebackq delims=" %%a in ("%A%") do (
  8.     findstr /bei /c:"%%~a" "%B%" >nul 2>nul && echo %%~a
  9. ))>拥有相同内容的结果.txt
  10. pause
  11. call :Donate
  12. exit
复制代码
上面是相同的内容保存到另个TXT,怎样改为不相同的内容?

最好改为任意根目录下的TXT文档对比。。。

求教高手。。。
发表于 2019-2-22 17:21:09 | 显示全部楼层
比较可以用 fc.exe A.exe B.exe
findstr:
相同的
  1. findstr /belig:"%B%" "%A%">相同内容.txt
复制代码
不同的
  1. findstr /bevlig:"%B%" "%A%">不同内容.txt
  2. findstr /belig:"%A%" "%B%">>不同内容.txt
复制代码
 楼主| 发表于 2019-2-22 19:21:35 | 显示全部楼层
回复 2# flashercs


    在文本文档另存为.bat,运行就可以了?可是处理结果是空的
发表于 2019-2-22 20:42:48 | 显示全部楼层
回复 3# qiqing


相同.bat
  1. findstr /belig:"1.txt" "2.txt">相同内容.txt
复制代码
不同.bat
  1. findstr /bevlig:"1.txt" "2.txt">不同内容.txt
  2. findstr /belig:"2.txt" "1.txt">>不同内容.txt
复制代码
如果还是不行,请把你测试用的以下文件打包压缩传上来我试试:
1.txt
2.txt
相同.bat
不同.bat
 楼主| 发表于 2019-2-22 22:19:38 | 显示全部楼层
回复 4# Batcher


    相同的可以,不同的第二行belig改为bevlig,好像就可以了,但是对比文本内容最后一行没切换下一行,处理后会出现不齐,附上文档,您试试
发表于 2019-2-22 23:14:40 | 显示全部楼层
回复 5# qiqing


    加 type 即可
  1. type "2.txt" | findstr /bevlig:"1.txt">不同内容.txt
  2. type "1.txt" | findstr /bevlig:"2.txt">>不同内容.txt
复制代码
 楼主| 发表于 2019-2-22 23:38:24 | 显示全部楼层
回复 6# WHY


    非常感谢!!!
 楼主| 发表于 2019-2-26 14:51:26 | 显示全部楼层
回复 6# WHY


    请问,BAT同目录任意TXT文本内容对比(任意名称的TXT都进行对比),不相同内容保存。。。怎么写?
发表于 2019-2-27 10:21:52 | 显示全部楼层
          
PS C:\Users\WHY> cd E:\Test
PS E:\Test> type 1.txt
1
2
3
PS E:\Test> type 2.txt
2
3
4
PS E:\Test> type 3.txt
3
4
5
PS E:\Test> $hash = @{};
PS E:\Test> dir 1.txt,2.txt,3.txt | %{ $arr = type $_ | sort -Unique; $arr | %{ $hash[$_]++ }}
PS E:\Test> $hash.Keys | ?{ $hash[$_] -eq 1 }
5
1
PS E:\Test>
发表于 2023-2-21 13:25:54 | 显示全部楼层
本帖最后由 881966 于 2023-2-21 13:40 编辑

回复 4# Batcher

http://www.bathome.net/thread-65222-1-1.html
    含特殊字符与超大文本

运行提示如下:

字符串列表太多

字符串列表太多

请按任意键继续. . .
发表于 2023-2-21 13:38:21 | 显示全部楼层
本帖最后由 881966 于 2023-2-21 13:40 编辑

回复 6# WHY

http://www.bathome.net/thread-65222-1-1.html
     含特殊字符与超大文本



字符串列表太多
过程试图写入的管道不存在。
字符串列表太多
过程试图写入的管道不存在。
请按任意键继续. . .
发表于 2023-2-21 17:03:42 | 显示全部楼层
回复 11# 881966


    纯P不擅长处理超大文本,对特殊字符也非常敏感。
这个问题建议你不要在纯批处理脚本上面下功夫,要么用第三方工具,要么选择其他脚本。
发表于 2023-2-21 19:18:45 | 显示全部楼层
回复 12# WHY
谢谢你的建议
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-19 05:24 , Processed in 0.021355 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表