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

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

[复制链接]
发表于 2017-7-29 18:03:57 | 显示全部楼层 |阅读模式
比如,以目录A为标准, 通过批处理生成其他5个目录 1,2,3,4,5,每个目录上理论上都与A应该是相同的,都有10个相同的二进制文件。
现在想把  1,2,3,4,5 这5个目录里面的文件都与 目录A 下面的文件进行比较,结果只要标出是哪个目录与A目录不同就可以了。

请问该如何写呢?
发表于 2017-7-29 19:07:57 | 显示全部楼层
本帖最后由 老刘1号 于 2017-7-29 19:09 编辑

这是比较单个文件的,目录比较自己写
FC /B File1 File2|Find "找不到相异处" >nul && Echo File1,File2的文件内容相同。||Echo File1,File2的文件内容不同。
发表于 2017-7-29 19:12:51 | 显示全部楼层
本帖最后由 老刘1号 于 2017-7-29 19:18 编辑

或者
  1. FC /B File1 File2 >NUL 2>NUL
  2. If ERRORLEVEL 1 (echo 不同) else echo 相同
复制代码
发表于 2017-7-29 21:16:58 | 显示全部楼层
  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
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-17 21:23 , Processed in 0.018856 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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