Как уже упоминалось на этой странице, команда:
CertUtil -hashfile yourFileName MD5может использоваться для получения значения хеша MD5 для определенного файла.
Как найти значения хеш-функции MD5 для нескольких файлов в папке с помощью cmd?
Как уже упоминалось на этой странице, команда:
CertUtil -hashfile yourFileName MD5может использоваться для получения значения хеша MD5 для определенного файла.
Как найти значения хеш-функции MD5 для нескольких файлов в папке с помощью cmd?
Вы можете использовать следующий скрипт:
for %%f in (*) do (
certutil -hashfile "%%f" MD5
)
Стандартный способ выполнить команду для нескольких файлов в CMD - это команда for
.
Вы можете получить информацию об использовании, набрав for /?
,
Простое решение вашей проблемы
for %F in (*) do @certutil -hashfile "%F" MD5
Здесь %F
является переменной.
Вы можете выбрать букву - любую отдельную букву - для имени переменной (конечно, используйте одно и то же имя в обоих местах) и заметить, что она чувствительна к регистру (%F
отличается от %f
).
Если вы делаете это в скрипте, используйте двойные знаки процента (например, %%F
).
Кавычки вокруг второго появления переменной ("%F"
)(как предполагает ответ nullterminatedstring)требуются, если любое из имен файлов содержит пробелы.
Вы можете поместить список имен файлов и / или символов подстановки в круглые скобки; например,
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
чтобы получить список файлов и их хэшей.
Вы можете использовать это в Windows 7, но сначала необходимо обновить Powershell до версии 4.