ディレクトリの一致チェックを行うにはfciv.exeを使う

概要

ディレクトリAとディレクトリBを、バイナリレベルで一致していることをチェックしたい場合は、バイナリdiffをとるのも1つの手ですが、Microsoftのfciv.exeを使うと、より早くチェックできます。

fcivはファイルのハッシュ値を取るユーティリティプログラムで、ディレクトリAとディレクトリBの中にあるファイルハッシュ値を比較することで、一致チェックができます。

fciv.exeにはオプションがいろいろあるのですが、ディレクトリAとディレクトリBの完全一致チェックを行うための手順は、次のようになります。

  1. .fciv.exeでディレクトリAでファイルハッシュを取得し、XMLファイル(dirA.xmlとします)に出力します。
  2. fciv.exeでディレクトリBのファイルハッシュをdirA.xmlと比較します。

具体例

  • ディレクトリAをc:\workとします。
  • ディレクトリBをx:\testとします。
  • 各ディレクトリにa.txtを配置して、比較する例です。

手順1 dirA.xmlを作成

PS> .\fciv.exe c:\work -bp c:\work -r -sha1 -xml dirA.xml

//
// File Checksum Integrity Verifier version 2.05.
//
Start Time: 07/05/2013 at 12h03'31''

Error loading XML document.
Create New XML database

End Time..: 07/05/2013 at 12h03'31''


        Processed 1 directories
        Processed 1 files
Errors have been reported to fciv.err

手順2 比較

PS> .\fciv.exe -v x:\test -bp x:\test -sha1 -xml dirA.xml

結果: 差異がない場合の表示

//
// File Checksum Integrity Verifier version 2.05.
//
Could not create the registry key.
Starting checksums verification : 07/05/2013 at 12h05'53

All files verified successfully

End Verification : 07/05/2013 at 12h05'53

結果: a.txtに差異があった場合の表示

//
// File Checksum Integrity Verifier version 2.05.
//
Could not create the registry key.
Starting checksums verification : 07/05/2013 at 12h06'11

List of modified files:
-----------------------
a.txt
        Hash is         : a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
        It should be    : 5d39e1aedb99cf0a706a5d0dfd73c773bf7a528f


End Verification : 07/05/2013 at 12h06'11

結果: a.txtが存在しない場合の表示

//
// File Checksum Integrity Verifier version 2.05.
//
Could not create the registry key.
Starting checksums verification : 07/05/2013 at 12h07'31

List of modified files:
-----------------------
Unable to Hash file a.txt

        Error msg  : 指定されたファイルが見つかりません。
        Error code : 2


End Verification : 07/05/2013 at 12h07'31

fciv.exeの詳細はこちら→http://support.microsoft.com/default.aspx?scid=kb;en-us;841290

One Reply to “ディレクトリの一致チェックを行うにはfciv.exeを使う”

コメントを残す