标题: [文本处理] [已解决]批处理如何实现文本对比差异写入? [打印本页]
作者: pZjVa0 时间: 2013-7-26 11:43 标题: [已解决]批处理如何实现文本对比差异写入?
批处理内容- for /f %%a in (1.txt) do (
- for /f %%i in (..\2.txt) do (
- if %%a NEQ %%i echo %%a>>..\2.txt
- )
- )
复制代码
1.txt内容复制代码
2.txt内容复制代码
文件目录数- E:\Desktop\文本内容对比>tree /f
- 文件夹 PATH 列表
- 卷序列号为 000051DC 000D:EDA9
- E:.
- │ 2.txt
- │
- └─呵呵
- 1.txt
- 测试.bat
复制代码
理想中的结果复制代码
现实中的结果- aa1
- aa2
- aa1
- aa2
- aa2
- aa3
- aa3
- aa3
- aa3
- aa3
- aa4
- aa4
- aa4
- aa4
- aa4
- aa4
- aa4
- aa4
- aa4
- aa4
- aa5
- aa5
- aa5
- aa5
- aa5
- aa5
- aa5
- aa5
- aa5
- aa5
- aa5
- aa5
- aa5
- aa5
- aa5
- aa5
- aa5
- aa5
- aa5
- aa5
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
- aa6
复制代码
请求各位大神帮帮忙。
作者: pZjVa0 时间: 2013-7-26 12:00
本帖最后由 pZjVa0 于 2013-7-26 12:01 编辑
回复 2# lxzzr
作者: pZjVa0 时间: 2013-7-26 20:06
本帖最后由 pZjVa0 于 2013-7-26 20:38 编辑
- @echo off
- for /f %%a in ('findstr /v /b /e /g:1.txt 2.txt') do (echo %%a>>1.txt)
- pause
- exit
复制代码
已解决
作者: CrLf 时间: 2013-7-27 00:06
可以不用 for /f- @findstr /v /x /l /g:1.txt 2.txt >$ & move /y $ 1.txt
复制代码
作者: pZjVa0 时间: 2013-7-27 00:12
回复 4# CrLf
这段代码有没有办法可以优化成同时保留原来的数据,而不只是替换成差异的数据?
作者: pZjVa0 时间: 2013-7-27 00:17
- @findstr /v /x /l /g:1.txt 2.txt >$ & type $ >>1.txt & del $
复制代码
这个就可以满足我的要求了,你的临时文件也是一个非常赞的思路,感谢分享。
作者: CrLf 时间: 2013-7-27 00:23
附加就不需要临时文件了,这样就行:- @findstr /v /x /l /g:1.txt 2.txt >>1.txt
复制代码
作者: pZjVa0 时间: 2013-7-27 00:34
本帖最后由 pZjVa0 于 2013-7-27 00:35 编辑
回复 7# CrLf 复制代码
这个虽然我很早就想过,但实践后发现是行不通的,目前发现临时文件+Type是最好的方法了,前面的echo语句我测试中发现会漏写一些字符串,例如字符窜之间有空格,空格后面就没被写进文件。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |