さまざまなWindowsプラットフォームでのファイルやフォルダのMD5サムの生成に関する投稿がいくつかあります。ただし、これらのうちnoneはうまくいきました。私は試した:
CertUtil -hashfile myFileName MD5
はすべてのフォルダで "アクセスが拒否されました"を返します(私のcmd
は管理者権限で実行されています)、この時点で私は少し必死になり始めています。 Windows 7 x64を使用していることに注意してください。
参考までに、できればLinuxで次のようなことができるツールを探しています。
find DIR -type f -exec md5sum {} \; | sort -k 2 | md5sum
GUIを使用する場合は、 Fsum Frontend をお勧めします。
Fsumフロントエンドは無料で使いやすいツールで、ファイルやテキスト文字列のメッセージダイジェスト、チェックサム、HMACを計算できます。ドラッグアンドドロップと一度に複数のファイルを処理できますをサポートしています。生成されたチェックサムは、ファイルの整合性を検証するために使用できます。
それは96のアルゴリズムをサポートします:[...] md5 [...]
名前が示すように、Fsumフロントエンドは(特に) SlavaSoft fsum のGUIです。
ファイルの整合性を検証するための高速で便利なコマンドラインユーティリティ。ファイルメッセージダイジェストとチェックサム計算のために、13の最も人気のあるハッシュ関数とチェックサム関数を選択できます。
その機能は次のとおりです。
- 行動する可能性再帰的に。 FSUMは、特定のディレクトリのファイルだけでなく、指定したディレクトリのすべてのサブディレクトリのファイルも操作できます。
- 大きなサイズのファイルで作業します。 (最大15 GBのファイルサイズでテスト済み);
- 完全md5sumとの互換性ユーティリティ
次のコマンドを使用すると、Unixコマンドと同等の処理(並べ替えを除く)を実行できます。
for /R . %f in (*.*) do @certutil -hashfile "%f" MD5
ドット(.
)再帰したいフォルダの場合、*.*
ファイルセットを絞り込むために必要なファイルマスクに。
PowerShellはループステートメントを提供しますが、この構文を好む人もいます
foreach($f in dir){ certutil -hashfile "$f" md5}
質問には遅れますが、ここでは受け入れられない回答のみを見つけることが私が見つけたものです。
function Get-FolderHash ($folder) {
dir $folder -Recurse | ?{!$_.psiscontainer} | %{[Byte[]]$contents += [System.IO.File]::ReadAllBytes($_.fullname)}
$hasher = [System.Security.Cryptography.SHA1]::Create()
[string]::Join("",$($hasher.ComputeHash($contents) | %{"{0:x2}" -f $_}))
}
このコードをコピーしてPowerShellコンソールに貼り付け、次のように入力します。
Get-FolderHash "C:\CustomFolder"
ランタイムは、フォルダーの内容によって異なる場合があります。