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

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

例如:如何用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文档对比。。。

求教高手。。。

回复 12# WHY
谢谢你的建议

TOP

回复 11# 881966


    纯P不擅长处理超大文本,对特殊字符也非常敏感。
这个问题建议你不要在纯批处理脚本上面下功夫,要么用第三方工具,要么选择其他脚本。

TOP

本帖最后由 881966 于 2023-2-21 13:40 编辑

回复 6# WHY

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



字符串列表太多
过程试图写入的管道不存在。
字符串列表太多
过程试图写入的管道不存在。
请按任意键继续. . .

TOP

本帖最后由 881966 于 2023-2-21 13:40 编辑

回复 4# Batcher

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

运行提示如下:

字符串列表太多

字符串列表太多

请按任意键继续. . .

TOP

          
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>

TOP

回复 6# WHY


    请问,BAT同目录任意TXT文本内容对比(任意名称的TXT都进行对比),不相同内容保存。。。怎么写?

TOP

回复 6# WHY


    非常感谢!!!

TOP

回复 5# qiqing


    加 type 即可
  1. type "2.txt" | findstr /bevlig:"1.txt">不同内容.txt
  2. type "1.txt" | findstr /bevlig:"2.txt">>不同内容.txt
复制代码

TOP

回复 4# Batcher


    相同的可以,不同的第二行belig改为bevlig,好像就可以了,但是对比文本内容最后一行没切换下一行,处理后会出现不齐,附上文档,您试试

TOP

回复 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
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# flashercs


    在文本文档另存为.bat,运行就可以了?可是处理结果是空的

TOP

比较可以用 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
复制代码
微信:flashercs
QQ:49908356

TOP

返回列表