中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]如何判断两文件的不同并输出到文件
作者:
标题: [已结]如何判断两文件的不同并输出到文件 上一主题 | 下一主题
luckboy45
中级用户




积分 487
发帖 212
注册 2007-4-1
状态 离线
『楼 主』:  [已结]如何判断两文件的不同并输出到文件

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

思路是这样的,我想比较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 ]



逍遥@浪子@反病毒
2007-5-26 21:18
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ieutk
初级用户




积分 107
发帖 48
注册 2006-11-30
状态 离线
『第 2 楼』:  


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




她希望我把粪土变黄金,我希望她视黄金如粪土!
2007-5-27 02:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
qingfushuan
高级用户





积分 502
发帖 327
注册 2006-12-30
状态 离线
『第 3 楼』:  试试是不是你需要的

在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
)

2007-5-27 11:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
luckboy45
中级用户




积分 487
发帖 212
注册 2007-4-1
状态 离线
『第 4 楼』:  

太感谢各位的帮忙了,我已经写出来了!特别感谢各位!~



逍遥@浪子@反病毒
2007-5-27 19:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lp1129
初级用户





积分 186
发帖 92
注册 2007-3-27
状态 离线
『第 5 楼』:  

最好的比较方法,可以显示行号

fc /u /n 1.txt 2.txt >3.txt

2007-5-28 08:14
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qingfushuan
高级用户





积分 502
发帖 327
注册 2006-12-30
状态 离线
『第 6 楼』:  

你用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

2007-5-28 09:30
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
luckboy45
中级用户




积分 487
发帖 212
注册 2007-4-1
状态 离线
『第 7 楼』:  

实在是感谢各位的热情帮助,我已经做出来了

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

客留QQ吧!~感谢DOS联盟的各位朋友,我从这里学会了不少东西哈!嘿嘿!~



逍遥@浪子@反病毒
2007-5-30 18:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sxhzx
新手上路





积分 6
发帖 6
注册 2008-12-25
状态 离线
『第 8 楼』:  这个也可以吧

@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

2009-6-8 17:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tempuser
高级用户





积分 547
发帖 261
注册 2006-4-15
状态 离线
『第 9 楼』:  

你这个我作了实际测试,比不出来?为什么?
qingfushuan的比较结果的输出文件3.txt没有出现?

2009-6-8 20:37
查看资料  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 10 楼』:  

我一般比较之前先用sort排序...



批处理之家 http://bbs.bathome.net/forum-5-1.html
2009-6-9 03:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: