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

[文件操作] 求个文件二进制比较命令

比如,以目录A为标准, 通过批处理生成其他5个目录 1,2,3,4,5,每个目录上理论上都与A应该是相同的,都有10个相同的二进制文件。
现在想把  1,2,3,4,5 这5个目录里面的文件都与 目录A 下面的文件进行比较,结果只要标出是哪个目录与A目录不同就可以了。

请问该如何写呢?

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%a in (1,1,5) do (
  4.     set "flag=yes"
  5.     for %%b in ("%%a\*") do (
  6.         if not exist "A\%%~nxb" (
  7.             set "flag=no"
  8.         ) else (
  9.             fc /b "%%b" "A\%%~nxb" > nul
  10.             if errorlevel 1 (
  11.                 set "flag=no"
  12.             )
  13.         )
  14.     )
  15.     if "!flag!" equ "no" (
  16.         echo %%a 不同
  17.     )
  18. )
  19. for %%a in ("A\*") do (
  20.     set "flag=yes"
  21.     for /l %%b in (1,1,5) do (
  22.         if not exist "%%b\%%~nxa" (
  23.             set "flag=no"
  24.             set "folder=%%b"
  25.         )
  26.     )
  27.     if "!flag!" equ "no" (
  28.         echo !folder! 不同
  29.     )
  30. )
  31. pause
复制代码
环境所限,需要使用 PowerShell 2.0 版本。

TOP

本帖最后由 老刘1号 于 2017-7-29 19:18 编辑

或者
  1. FC /B File1 File2 >NUL 2>NUL
  2. If ERRORLEVEL 1 (echo 不同) else echo 相同
复制代码

TOP

本帖最后由 老刘1号 于 2017-7-29 19:09 编辑

这是比较单个文件的,目录比较自己写
FC /B File1 File2|Find "找不到相异处" >nul && Echo File1,File2的文件内容相同。||Echo File1,File2的文件内容不同。

TOP

返回列表