找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 27981|回复: 8

[文件操作] 批处理怎样实现多级目录下文件对比?

[复制链接]
发表于 2011-8-12 16:23:10 | 显示全部楼层 |阅读模式
大家好,
最近研究文件对比的脚本,不知道批处理能不能实现该功能,我觉得应该可以,但是学疏才浅不知道该如何写,请教各位。
目的:
实现多级目录下文件对比。
例如:
C:\SRC目录下面有B,C,D,E3个目录,B,C,D,E目录下面分别有1_dhcp.sql,2_dhcp.sql...n,
C:\OUT目录下面也有B,C,D,E3个目录,B,C,D,E目录下面分别有1_dhcp.sql,2_dhcp.sql...n,
对比SRC,OUT目录下面的文件是否相同,输入到一个文件中,查看对比结果。
对比结果格式:
1_dhcp.sql 相同
2_dhcp.sql 不同
。。。。。。N。
说明一下:
SRC,OUT目录下的1_dhcp.sql文件的内容,就是一些sql语句,我想要对比这两个sql语句是否相同,如果不相同就输出“不同”
fc命令就可以对比两个文件是否相同,fc /B file1.txt file2.txt,但是对比结果格式不是我想要的。
文件对比结果,希望类似于beyond compare逐行对比,如果遇到不一样的值,输出的结果就是“不同”,如果文件相同,输出结果“相同”

难点:
1.现在关键问题是不知道如何实现多级目录下的文件对比。
2.结果格式如何来实现。

备注:
如果有描述不清的地方,随时联系mail:leig@sian.cn
我一直会关注该贴
 楼主| 发表于 2011-8-12 16:32:18 | 显示全部楼层
有知道的帮忙给看一下
发表于 2011-8-12 16:43:45 | 显示全部楼层
本帖最后由 hanyeguxing 于 2011-8-12 17:15 编辑
  1. @echo off
  2. (for %%a in ("C:\SRC\*.sql") do ((fc /b "%%a" "C:\OUT\%%~nxa">nul 2>nul)&&echo %%~nxa 相同||echo %%~nxa 不同))>>输出.txt
复制代码
 楼主| 发表于 2011-8-12 16:45:51 | 显示全部楼层
我先看看,谢谢啊
 楼主| 发表于 2011-8-12 17:00:17 | 显示全部楼层
谢谢啊,输出结果比我的好看
您看能不能输出结果里面,去掉FC本身打印的信息啊。
我查了一下FC的参数,好像没有。不知道如何解决,版主真是高手啊,我怎么就没有想到。看来FOR DO命令不行啊
发表于 2011-8-12 17:27:17 | 显示全部楼层
已经用 >nul 2>nul 屏蔽了
发表于 2011-8-13 16:53:45 | 显示全部楼层
本帖最后由 Hello123World 于 2011-8-13 17:03 编辑

回复 3# hanyeguxing
&& ,||是根据前面的语句成功与否选择执行下一条语句。
  1. fc /b 1.txt ah.txt && @echo hello || @echo no
  2. pause
复制代码
这两个文件不同,也没有显示no,为什么?(第一问已解决)

竟然是@的问题,这又为什么,我关闭的只是echo 本身的回显,为什么no没有输出?
  1. fc /b 1.txt ah.txt && echo hello || echo no
  2. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
CrLf + 1 新发现!

查看全部评分

发表于 2011-8-13 17:07:21 | 显示全部楼层
回复 7# Hello123World


    不可思议,这又是什么毛病...逻辑连接符后跟的语句输出为什么会被当成预处理回显?想不通
发表于 2011-8-13 17:19:16 | 显示全部楼层
回复 8# CrLf

看他的回显,似乎&&后面的语句都被和谐了,可为什么又被和谐了呢?
  1. C:\Users\helloworld\Desktop>fc /b 1.txt ah.txt   &&
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 21:27 , Processed in 0.019995 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表