Board logo

标题: [文件操作] 求个文件二进制比较命令 [打印本页]

作者: conolmova    时间: 2017-7-29 18:03     标题: 求个文件二进制比较命令

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

请问该如何写呢?
作者: 老刘1号    时间: 2017-7-29 19:07

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

这是比较单个文件的,目录比较自己写
FC /B File1 File2|Find "找不到相异处" >nul && Echo File1,File2的文件内容相同。||Echo File1,File2的文件内容不同。
作者: 老刘1号    时间: 2017-7-29 19:12

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

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

作者: PS2.0    时间: 2017-7-29 21:16

  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
复制代码





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