So erstellen Sie einen MD5-Hashwert für mehrere Dateien in einem Ordner, der cmd verwendet

8499
Hari

Wie auf dieser Seite erwähnt, lautet der Befehl:

CertUtil -hashfile yourFileName MD5
kann 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?

2

3 Antworten auf die Frage

4
testeaxeax

Sie können das folgende Skript verwenden:

for %%f in (*) do ( certutil -hashfile "%%f" MD5 ) 
Vielen Dank, dass Sie mich an die Zitate erinnert haben. Ich erinnere mich immer daran, sie unter Unix zu verwenden, aber manchmal vergesse ich Windows. G-Man vor 6 Jahren 0
2
G-Man

Die Standardmethode zum Ausführen eines Befehls für mehrere Dateien in CMD ist der forBefehl. 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 %Fist 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 ( %Fnicht 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 … 

certutilist 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 successfullyMeldungen herauszufiltern ).

0
Charles Burge

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-Csvum 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.