このページ で述べたように、コマンド:
CertUtil -hashfile yourFileName MD5
Cmdを使用して、フォルダー内の複数のファイルのMD5ハッシュ値を見つけるにはどうすればよいですか?
次のスクリプトを使用できます。
for %%f in (*) do (
certutil -hashfile "%%f" MD5
)
CMDの複数のファイルに対してコマンドを実行する標準的な方法は、for
コマンドです。 for /?
と入力すると、使用情報を取得できます。あなたの問題の簡単な解決策は
for %F in (*) do @certutil -hashfile "%F" MD5
ここで%F
は変数です。変数名には任意のsingle文字を選択できます(もちろん、両方の場所で同じ名前を使用します)。大文字と小文字が区別されます(%F
は%f
と同じではありません)。スクリプトでこれを行う場合は、二重パーセント記号を使用してください(例:%%F
)。
変数("%F"
)の2番目の出現を囲む引用符( nullterminatedstring’s answer で推奨)は、ファイル名にスペースが含まれている場合に必要です。
括弧の間にファイル名やワイルドカードのリストを入れることができます。例えば。、
for %F in (file1 file2 a* b*) do …
certutil
はやや冗長です。次のように言って、おしゃべりを減らすことができます
for %F in (*) do @certutil -hashfile "%F" MD5 | find /v "hashfile command completed successfully"
(command completed successfully
メッセージを除外するため)。
特にcmdを要求したことは知っていますが、Windows 8.1以降を使用している場合は、代わりにPowershellの使用を検討してください。
Get-FileHash -Algorithm MD5 -Path (Get-ChildItem "\\path\to\files\*.*" -Recurse)
もちろん、Recurseスイッチはオプションです。それをExport-Csv
にパイプして、ファイルとそのハッシュのリストを取得できます。
あなたはcanこれをWindows 7で使用しますが、最初にPowershellをバージョン4にアップグレードする必要があります。