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

[文件操作] 批处理BAT如何比较多个文件夹下的文件?

[复制链接]
发表于 2014-5-14 20:40:44 | 显示全部楼层 |阅读模式
小弟初学批处理,求各位大神搭救
如图所示,同一路径下有3个文件夹(有更多以IP命名的文件夹),文件夹中包含5个文件且文件名与其他文件夹下的文件相同,以192.168.56.1文件夹中的文件为模板,让其他文件夹中的5个文件与模板文件夹中的文件作比较,如不同则把与模板不同的文件夹名写入出错计算机.txt。如192.168.1.103文件夹中内容与模板不相同则在出错计算机.txt中写入:IP为192.168.1.103的计算机有问题。
我写了两个文件夹作比较的代码如下:
  1. @echo off
  2. fc.exe 192.168.1.103\*.* 192.168.56.1\*.*
  3. fc 192.168.1.103 192.168.56.1 >nul&&echo 无差异||echo 有差异
  4. pause
复制代码
我已上传模板及其中一个文件夹
发表于 2014-5-14 21:30:58 | 显示全部楼层
是比较文件名还是文件内容
 楼主| 发表于 2014-5-14 22:37:53 | 显示全部楼层
回复 2# CrLf
是比较文件内容。
发表于 2014-5-15 12:52:25 | 显示全部楼层
自己完善下
  1. @echo off
  2. for /f "delims=" %%a in ('dir /b 192.168.56.1 /a-d') do (
  3.         for /f %%b in ('md5 "192.168.56.1\%%a"') do set "%%~na=%%b"
  4. )
  5. for /f "delims=" %%a in ('dir /b /ad') do (
  6.         if %%a neq 192.168.56.1 (
  7.                 for /f "delims=" %%b in ('dir /b %%a /a-d') do (
  8.                         for /f %%c in ('md5 "%%a\%%b"') do call :check %%%%~nb%% %%c %%a "%%~nb"
  9.                 )
  10.         )       
  11. )
  12. pause

  13. :check
  14. if %1 neq %2 echo %3 %4 异常
  15. exit /b
复制代码
192.168.1.105 "GPU-Z 传感器日志" 异常
192.168.1.105 "hwmonitorw" 异常
192.168.1.105 "HWParams" 异常
请按任意键继续. . .
发表于 2014-5-15 12:54:08 | 显示全部楼层
 楼主| 发表于 2014-5-15 21:04:24 | 显示全部楼层
回复 4# 522235677
具体怎么使用呢?能不能教一下,运行你给的代码没作用啊。
发表于 2014-5-16 23:40:42 | 显示全部楼层
回复 6# Numb_tiger


    md5.exe放一起了吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 01:33 , Processed in 0.012832 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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