Sie können das folgende Skript verwenden:
for %%f in (*) do ( certutil -hashfile "%%f" MD5 )
Wie auf dieser Seite erwähnt, lautet der Befehl:
CertUtil -hashfile yourFileName MD5kann verwendet werden, um den MD5-Hashwert für eine bestimmte Datei zu erhalten.
Wie kann ich die MD5-Hashwerte für mehrere Dateien in einem Ordner mit cmd finden?
Sie können das folgende Skript verwenden:
for %%f in (*) do ( certutil -hashfile "%%f" MD5 )
Die Standardmethode zum Ausführen eines Befehls für mehrere Dateien in CMD ist der for
Befehl. Sie können Nutzungsinformationen erhalten, indem Sie eingeben for /?
. Eine einfache Lösung für Ihr Problem ist
for %F in (*) do @certutil -hashfile "%F" MD5
Hier %F
ist eine Variable. Sie können einen Buchstaben - jeden einzelnen Buchstaben - für den Variablennamen auswählen (natürlich an beiden Stellen denselben Namen verwenden) - und beachten, dass die Groß- und Kleinschreibung beachtet wird ( %F
nicht dasselbe %f
). Wenn Sie dies in einem Skript tun, verwenden Sie doppelte Prozentzeichen (z %%F
. B. ).
Die Anführungszeichen um die zweite Erscheinung der Variable ( "%F"
) (wie von nullterminatedstrings Antwort vorgeschlagen ) sind erforderlich, wenn einer der Dateinamen Leerzeichen enthält.
Sie können eine Liste mit Dateinamen und / oder Platzhaltern zwischen den Klammern einfügen. z.B,
for %F in (file1 file2 a* b*) do …
certutil
ist etwas wortreich. Sie können das Geschwätz reduzieren, indem Sie sagen
for %F in (*) do @certutil -hashfile "%F" MD5 | find /v "hashfile command completed successfully"
(um die command completed successfully
Meldungen herauszufiltern ).
Ich weiß, dass Sie speziell nach cmd gefragt haben. Wenn Sie jedoch Windows 8.1 oder höher verwenden, sollten Sie stattdessen Powershell verwenden:
Get-FileHash -Algorithm MD5 -Path (Get-ChildItem "\\path\to\files\*.*" -Recurse)
Der Recurse-Schalter ist natürlich optional. Sie können es per Pipe weiterleiten, Export-Csv
um eine Liste der Dateien und deren Hashwerte zu erhalten.
Sie können dies in Windows 7 verwenden, aber Sie müssen Powershell zuerst auf Version 4 aktualisieren.