如何使用cmd为文件夹中的多个文件生成MD5哈希值

如何使用cmd为文件夹中的多个文件生成MD5哈希值

正如所提到的这一页, 命令:

CertUtil-hash文件你的文件名MD5
可用于获取特定文件的 MD5 哈希值。

如何使用 cmd 查找文件夹中多个文件的 MD5 哈希值?

答案1

我知道您专门要求使用 cmd,但如果您使用的是 Windows 8.1 或更高版本,请考虑使用 Powershell:

Get-FileHash -Algorithm MD5 -Path (Get-ChildItem "\\path\to\files\*.*" -Recurse)

当然,Recurse 开关是可选的。您可以通过管道Export-Csv获取文件及其哈希值的列表。

在 Windows 7 中使用它,但您必须先将 Powershell 升级到版本 4。

答案2

您可以使用以下脚本:

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

答案3

在 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消息)。

答案4

我计算了驱动器上所有文件的哈希值,并使用 PowerShell 中的以下脚本将其导出为 .csv:

Get-ChildItem C: -Recurse |
    Get-FileHash -Algorithm MD5 |
    Export-Csv -Path C:\Users\yourname\Documents\Output\hashes.csv -NoTypeInformation
    Import-Csv -Path C:\Users\yourname\Documents\Output\hashes.csv

在运行脚本之前,请确保在该位置创建 .csv 文件。脚本不会为您创建容器。运行之间无需清除 .csv 文件中的数据,它会自行清除。

运行几次以确保获得一致的数据输出。出于某种原因,我第一次成功的 .csv 输出没有提取所有数据。之后又测试了 2-3 次,并获得了一致的输出。

然后,您可以将 .csv 文件另存为 Excel 工作簿。.csv 文件可使用 Excel 打开。

相关内容