[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 批处理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
复制代码
我已上传模板及其中一个文件夹

回复 6# Numb_tiger


    md5.exe放一起了吗

TOP

回复 4# 522235677
具体怎么使用呢?能不能教一下,运行你给的代码没作用啊。

TOP

TOP

自己完善下
  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" 异常
请按任意键继续. . .

TOP

回复 2# CrLf
是比较文件内容。

TOP

是比较文件名还是文件内容

TOP

返回列表