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

Har*_*ari 7 windows-7 checksum hashing cmd.exe

本页所述,命令:

CertUtil -hashfile yourFileName MD5
可用于获取特定文件的 MD5 哈希值。

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

tes*_*eax 7

您可以使用以下脚本:

for %%f in (*) do (
certutil -hashfile "%%f" MD5
)
Run Code Online (Sandbox Code Playgroud)


Cha*_*rge 6

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

Get-FileHash -Algorithm MD5 -Path (Get-ChildItem "\\path\to\files\*.*" -Recurse)
Run Code Online (Sandbox Code Playgroud)

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

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

  • 将结果通过管道传输到 CSV,格式为“|” 导出 csv -路径 D:\abc.csv -NoTypeInformation`。 (5认同)

G-M*_*ca' 5

在 CMD 中对多个文件运行命令的标准方法\nis 命令for。\xc2\xa0\n您可以通过键入 来获取使用信息for\xc2\xa0/?。\xc2\xa0\n问题的一个简单解决方案是

\n
for %F in (*) do @certutil -hashfile "%F" MD5\n
Run Code Online (Sandbox Code Playgroud)\n

这里%F是一个变量。\xc2\xa0\n你可以选择任何字母\xe2\x80\x94任何单个字母\xe2\x80\x94作为变量名\n(当然,在两个地方使用\xc2\xa0相同的名称) ) \xe2\x80\x94\n 并注意它区分大小写(%F与 \xc2\xa0 不同%f)。\xc2\xa0\n如果在脚本中执行此操作,请使用双百分号(例如,%%F)。

\n

如果任何文件名包含空格,则需要在变量 ( "%F")\n 的第二次出现周围加上引号(如nulltermeratedstring\xe2\x80\x99s 答案所建议)\n。

\n

您可以在括号之间放置文件名和/或通配符列表;\ne.g.,

\n
for %F in (file1 file2 a* b*) do \xe2\x80\xa6\n
Run Code Online (Sandbox Code Playgroud)\n

certutil有点冗长。\xc2\xa0\n你可能想通过说来减少喋喋不休

\n
for %F in (*) do @certutil -hashfile "%F" MD5 | find /v "hashfile command completed successfully"\n
Run Code Online (Sandbox Code Playgroud)\n

(过滤掉command completed successfully消息)。

\n