Board logo

标题: [已结]如何判断两文件的不同并输出到文件 [打印本页]

作者: luckboy45     时间: 2007-5-26 21:18    标题: [已结]如何判断两文件的不同并输出到文件

我在所有的帖子了找比较两个文件的不同并输出结果,完全没找到需要的内容,万般无奈,只能发个帖子了,

思路是这样的,我想比较1.TXT和2.TXT两个文件的不同并把结果输出到3.TXT

我有比较不同的代码,但似乎没啥效果,只能比较出一个不同!

代码如下:
@echo off
:: 把两个文件中的不同之处提取到某个文件中去
:: code by jm 2006-9-9 CMD@XP
cd.>3.txt
for /f "tokens=1* delims=:" %%i in ('findstr /n . 1.txt') do (
    for /f "tokens=1* delims=:" %%x in ('findstr /n . 2.txt') do (
        if %%i equ %%x if not "%%j"=="%%y" (>>3.txt echo 1:%%j&>>3.txt echo 2:%%y&>>3.txt echo.)
    )
)


这代码看的不是很明白,麻烦高手帮忙写个简单的,我记得好象有一个高手写了个简单的,但找不到啊!麻烦各位了,这问题困惑了我很久了..........


─────────────────── 版务记录 ────────────────────
执行:lxmxn
操作:修改主题标题
─────────────────── 版务记录 ────────────────────




问题已经彻底解决,特别感谢DOS联盟热情的朋友给予的热情帮助!



[ Last edited by luckboy45 on 2007-5-30 at 06:56 PM ]
作者: ieutk     时间: 2007-5-27 02:45

fc 1.txt 2.txt>>3.txt

作者: qingfushuan     时间: 2007-5-27 11:05    标题: 试试是不是你需要的

在jm的基础上修改完成的

@echo off
:: 比较两个文本文件的不同写入3.txt
::code by qingfushuan 2007-05-28 cmd@xp
for /f %%i in ('findstr . 1.txt') do (
     find "%%i" 2.txt || echo 1:%%i >>3.txt
)
for /f %%x in ('findstr . 2.txt') do (
     find "%%x" 1.txt || echo 2:%%x >>3.txt
)
作者: luckboy45     时间: 2007-5-27 19:56
太感谢各位的帮忙了,我已经写出来了!特别感谢各位!~
作者: lp1129     时间: 2007-5-28 08:14
最好的比较方法,可以显示行号

fc /u /n 1.txt 2.txt >3.txt
作者: qingfushuan     时间: 2007-5-28 09:30
你用fc比较试试下面的文件有不同吗
如:
1.txt
C:\temp\~DFDE1F.tmp
C:\temp\~DFE7DC.tmp
C:\temp\T30DebugLogFile.txt
C:\temp\~DF3B23.tmp
C:\temp\qmf
C:\temp\~DFD28B.tmp
C:\temp\np28.tmp
C:\temp\cch~6e99008c.htp

2.txt
C:\temp\~DFDE1F.tmp
C:\temp\cch~6e99008c.htp
C:\temp\~DFE7DC.tmp
C:\temp\T30DebugLogFile.txt
C:\temp\~DF3B23.tmp
C:\temp\qmf
C:\temp\~DFD28B.tmp
C:\temp\np28.tmp
C:\temp\cch~6e99008c.htp
作者: luckboy45     时间: 2007-5-30 18:06
实在是感谢各位的热情帮助,我已经做出来了

目前已经成功制作了个批处理查杀DLL木马的工具,如果需要玩玩,请来我签名下面的博

客留QQ吧!~感谢DOS联盟的各位朋友,我从这里学会了不少东西哈!嘿嘿!~
作者: sxhzx     时间: 2009-6-8 17:10    标题: 这个也可以吧

@echo off
echo\正在处理请稍等...&type nul>comp.txt
for /f %%a in ('type b.txt') do call :lp %%a
start comp.txt&goto :eof

:lp
for /f %%b in ('type cop.txt') do if %%b==%1 (goto :eof)
echo\%1>>comp.txt
作者: tempuser     时间: 2009-6-8 20:37
你这个我作了实际测试,比不出来?为什么?
qingfushuan的比较结果的输出文件3.txt没有出现?
作者: Hanyeguxing     时间: 2009-6-9 03:37
我一般比较之前先用sort排序...