web-dev-qa-db-ja.com

cmdを使用してフォルダ内の複数のファイルのMD5ハッシュ値を生成する方法

このページ で述べたように、コマンド:

CertUtil -hashfile yourFileName MD5

Cmdを使用して、フォルダー内の複数のファイルのMD5ハッシュ値を見つけるにはどうすればよいですか?

5
Hari

次のスクリプトを使用できます。

for %%f in (*) do (
certutil -hashfile "%%f" MD5
)
5
testeaxeax

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にアップグレードする必要があります。

3
Charles Burge