Board logo

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

作者: qiqing    时间: 2019-2-22 15:28     标题: 如何用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文档对比。。。

求教高手。。。
作者: flashercs    时间: 2019-2-22 17:21

比较可以用 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
复制代码

作者: qiqing    时间: 2019-2-22 19:21

回复 2# flashercs


    在文本文档另存为.bat,运行就可以了?可是处理结果是空的
作者: Batcher    时间: 2019-2-22 20:42

回复 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
作者: qiqing    时间: 2019-2-22 22:19

回复 4# Batcher


    相同的可以,不同的第二行belig改为bevlig,好像就可以了,但是对比文本内容最后一行没切换下一行,处理后会出现不齐,附上文档,您试试
作者: WHY    时间: 2019-2-22 23:14

回复 5# qiqing


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

作者: qiqing    时间: 2019-2-22 23:38

回复 6# WHY


    非常感谢!!!
作者: qiqing    时间: 2019-2-26 14:51

回复 6# WHY


    请问,BAT同目录任意TXT文本内容对比(任意名称的TXT都进行对比),不相同内容保存。。。怎么写?
作者: WHY    时间: 2019-2-27 10:21

          
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>

作者: 881966    时间: 2023-2-21 13:25

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

回复 4# Batcher

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

运行提示如下:

字符串列表太多

字符串列表太多

请按任意键继续. . .
作者: 881966    时间: 2023-2-21 13:38

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

回复 6# WHY

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



字符串列表太多
过程试图写入的管道不存在。
字符串列表太多
过程试图写入的管道不存在。
请按任意键继续. . .
作者: WHY    时间: 2023-2-21 17:03

回复 11# 881966


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

回复 12# WHY
谢谢你的建议




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2