标题: [文本处理] 如何用BAT批处理对比两个TXT文件的不相同内容并保存到另一个TXT [打印本页]
作者: qiqing 时间: 2019-2-22 15:28 标题: 如何用BAT批处理对比两个TXT文件的不相同内容并保存到另一个TXT
例如:如何用BAT批处理对比两个TXT文件的相同内容并保存到另一个TXT- @echo off & title 提取两个文本中相同的内容行
-
- ::设置比对文件A
- set A=1.txt
-
- ::设置比对文件B
- set B=2.txt
-
- echo 比对提取中。。。。
- (for /f "usebackq delims=" %%a in ("%A%") do (
- findstr /bei /c:"%%~a" "%B%" >nul 2>nul && echo %%~a
- ))>拥有相同内容的结果.txt
- pause
- call :Donate
- exit
复制代码
上面是相同的内容保存到另个TXT,怎样改为不相同的内容?
最好改为任意根目录下的TXT文档对比。。。
求教高手。。。
作者: flashercs 时间: 2019-2-22 17:21
比较可以用 fc.exe A.exe B.exe
findstr:
相同的- findstr /belig:"%B%" "%A%">相同内容.txt
复制代码
不同的- findstr /bevlig:"%B%" "%A%">不同内容.txt
- findstr /belig:"%A%" "%B%">>不同内容.txt
复制代码
作者: qiqing 时间: 2019-2-22 19:21
回复 2# flashercs
在文本文档另存为.bat,运行就可以了?可是处理结果是空的
作者: Batcher 时间: 2019-2-22 20:42
回复 3# qiqing
相同.bat- findstr /belig:"1.txt" "2.txt">相同内容.txt
复制代码
不同.bat- findstr /bevlig:"1.txt" "2.txt">不同内容.txt
- 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 即可- type "2.txt" | findstr /bevlig:"1.txt">不同内容.txt
- 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://bathome.net./) |
Powered by Discuz! 7.2 |