中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-10 14:07
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,255 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]如何判断两文件的不同并输出到文件
可打印版本  2,189 / 9
第1楼 luckboy45 发表于 2007-05-26 21:18
中级用户 发帖 212 积分 487
[已结]如何判断两文件的不同并输出到文件
我在所有的帖子了找比较两个文件的不同并输出结果,完全没找到需要的内容,万般无奈,只能发个帖子了,

思路是这样的,我想比较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 ]
第2楼 ieutk 发表于 2007-05-27 02:45
初级用户 发帖 48 积分 107
第3楼 qingfushuan 发表于 2007-05-27 11:05
高级用户 发帖 327 积分 502
试试是不是你需要的
在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
)
第4楼 luckboy45 发表于 2007-05-27 19:56
中级用户 发帖 212 积分 487
太感谢各位的帮忙了,我已经写出来了!特别感谢各位!~
第5楼 lp1129 发表于 2007-05-28 08:14
初级用户 发帖 92 积分 186
最好的比较方法,可以显示行号

fc /u /n 1.txt 2.txt >3.txt
第6楼 qingfushuan 发表于 2007-05-28 09:30
高级用户 发帖 327 积分 502
你用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
第7楼 luckboy45 发表于 2007-05-30 18:06
中级用户 发帖 212 积分 487
实在是感谢各位的热情帮助,我已经做出来了

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

客留QQ吧!~感谢DOS联盟的各位朋友,我从这里学会了不少东西哈!嘿嘿!~
第8楼 sxhzx 发表于 2009-06-08 17:10
新手上路 发帖 6 积分 6
这个也可以吧
@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
第9楼 tempuser 发表于 2009-06-08 20:37
高级用户 发帖 261 积分 547
你这个我作了实际测试,比不出来?为什么?
qingfushuan的比较结果的输出文件3.txt没有出现?
第10楼 Hanyeguxing 发表于 2009-06-09 03:37
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
我一般比较之前先用sort排序...
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023