ディレクトリツリー全体のmd5ハッシュを生成および検証する機能を備えたバッチスクリプトを作成したいと思います。 Windows用のこのようなプログラムはありますか?
私は多くのmd5プログラムを見つけることができますが、それらは検証も再発もしません。
したがって、コマンドラインに精通している場合は、次のツールを試すことができます。
FileList
元のURLは機能しなくなったため、上記ではウェイバックマシンを使用しています。ダウンロードサイトに移動するリンクをクリックすると、ウェイバックマシンも使用されるため、引き続き機能しているように見える直接リンクがあります。 https://www.jam-software.com/filelist/
filelist /?
FileList V2.0
Prints a list of all files in a file system branch
FILELIST [/OPTION] [/FILTER pattern1;pattern2;...] Path [>list.csv]
/OWNERS Adds a coluimn with the file owners (slower)
/NOHEADER Leaves out the column headers and only prints the raw data
/ATTRIBUTES Includes the attributes that are set for each files
/MD5 Adds a column wit the MD5 checksum of each file
/AUTHORS Additionally extracts name of the author from MS Office documents
/LASTSAVEDATE Additionally extracts the last save date from MS Office documents
/FILTER Allows to specify one or more filters, separated with semicolons
For example: filelist /md5 C:\temp > list.csv
Add new files then run again filelist /md5 C:\temp > list2.csv
またはmd5deepfrom http://md5deep.sourceforge.net/start-md5deep.html
md5deep.exe -r C:\temp >> md5hashes1.txt modify files and run again
md5deep.exe -r C:\temp >> md5hashes2.txt
ここで、Excelまたは任意のdiffユーティリティ(Windifffなど)のいずれかでlist.csvをlist2.csvと比較するだけです。
それ以外の場合:
MD5summerfrom http://www.md5summer.org/
または
なぜ車輪の再発明をするのですか? Windowsアプリを探していると具体的に言ったので、お勧めします HashCheck Shell Extension
それはあなたが求めるすべてを行うことができ、リソースが非常に少ないです。
申し訳ありませんが、これはできないと思います。 md5ハッシュはバイトストリームのハッシュですが、ディレクトリツリーはバイトストリームではありません。フォルダは、ファイル(バイトのストリーム)およびその他のフォルダのインデックスです。現在、技術的にはフォルダは単なるファイルですが、すべてのファイルに「事前に定義された」順序がないため、それが可能だとは思いません。
したがって、代わりに、最初にディレクトリを単一のバイトストリーム(つまりファイル)にエンコードする必要があると思います。 ZipまたはwinRarのコマンドラインバージョンがこれを実現します。速度が問題になる場合は、実際には圧縮を行わないオプションがあります。おそらくtarのWindowsポートもあるでしょうし、あるいはWindowsネイティブの同等のもの(.cabファイル?)もあるでしょう。私はおそらく7Zipを使用し、comamndline 7z.exe
(インストーラーに含まれています)を使用します
したがって、スクリプトで単一のファイルを作成し、そのMD5ハッシュを取得できます。そして、スクリプトによって単一のファイルが削除される可能性があります。正確にはあなたが望むものではありませんが、私はそれがあなたの最良の選択肢だと思います。