Board logo

标题: [文件操作] 批处理BAT如何比较多个文件夹下的文件? [打印本页]

作者: Numb_tiger    时间: 2014-5-14 20:40     标题: 批处理BAT如何比较多个文件夹下的文件?

小弟初学批处理,求各位大神搭救
如图所示,同一路径下有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
复制代码
我已上传模板及其中一个文件夹
作者: CrLf    时间: 2014-5-14 21:30

是比较文件名还是文件内容
作者: Numb_tiger    时间: 2014-5-14 22:37

回复 2# CrLf
是比较文件内容。
作者: 522235677    时间: 2014-5-15 12:52

自己完善下
  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" 异常
请按任意键继续. . .
作者: 522235677    时间: 2014-5-15 12:54

http://www.bathome.net/viewthread.php?tid=22181&highlight=md5
md5文件在这下
作者: Numb_tiger    时间: 2014-5-15 21:04

回复 4# 522235677
具体怎么使用呢?能不能教一下,运行你给的代码没作用啊。
作者: 522235677    时间: 2014-5-16 23:40

回复 6# Numb_tiger


    md5.exe放一起了吗




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2