Dzwebs.Net

撰写电脑技术杂文十余年

比较文件和比较文件夹的方法

Admin | 2010-8-28 12:11:37 | 被阅次数 | 8008

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  文件与文件之间的比较,甚至是文件夹与文件夹之间的比较,可使用如下的方法进行对比。

  ①如果你想比较两个文件,可以使用系统自带的命令行程序fc.exe,另外UltraEdit等编辑器也具有比较文件的功能;

  ②如果你是想比较两个文件夹,Win98安装光盘提供了windiff.exe,可以在窗口方式下比较两个文件夹的内容;WinXP增强工具集中则提供了命令行方式的bindiff.exe;而第三方工具TotalCmd等资源浏览器也提供文件夹比较的功能;

  ③如果限定使用批处理解决问题,可以参考我过去编写的一个小程序,在WinXP CMD下运行通过。

  下面的批处理比较文件的代码,为了程序的运行效率考虑,对同名的不同文件没有进行内容上的比较,而只是比较了文件的属性、大小和修改日期,这当然是不全面的,但应该可以满足日常的需要。

  --------------------------------------------------------------
  @echo off & setlocal EnableDelayedExpansion
  if not "%2"=="" goto Start

  :Help
  echo CompDir.cmd - Compare files in two directories.
  echo Usage: %0 [/f] dir1 dir2 [FileSpec]
  echo /f Compare time/size/attrib of file
  echo filespec Specific files by wildcard of filename
  goto :EOF

  :Start
  if /i "%1"=="/f" shift && set _CompFile=on
  if "%3"=="" (set filespec=*.*) else set filespec=%3
  for /r %~f1 %%f in (%filespec%) do (
  set file=%%~ff
  set file=!file:%~f1\=!
  if not exist "%~f2\!file!" echo.Only in 1: !file!
  )
  for /r %~f2 %%f in (%filespec%) do (
  set file=%%~ff
  set file=!file:%~f2\=!
  if not exist "%~f1\!file!" echo Only in 2: !file!
  )
  if not "%_CompFile%"=="on" goto :EOF
  echo Compare Time/siZe/Attrib of file...
  echo Press Ctrl+C to Quit
  for /r %~f1 %%f in (%filespec%) do (
  set file=%%~ff
  set file=!file:%~f1\=!
  if exist "%~f2\!file!" for %%g in ("%~f2\!file!") do (
  if "%%~tf" NEQ "%%~tg" echo !file! Time 1"%%~zf" NEQ 2"%%~zg">>"%temp%   \_CompFile.tmp"
  if "%%~zf" NEQ "%%~zg" echo !file! Size 1"%%~zf" NEQ 2"%%~zg">>"%temp%\_CompFile.tmp"
  if "%%~af" NEQ "%%~ag" echo !file! Attrib 1"%%~zf" NEQ 2"%%~zg">>"%temp%\_CompFile.tmp"
  )
  )
  if exist "%temp%\_CompFile.tmp" del "%temp%\_CompFile.tmp"


该杂文来自: 基础知识杂文

上一篇:信息为什么可以压缩(信息压缩的原理)

下一篇:多种二进制文件传输协议介绍

网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231 访问统计