您可以使用以下脚本:
for %%f in (*) do (
certutil -hashfile "%%f" MD5
)
Run Code Online (Sandbox Code Playgroud)
我知道您专门要求使用 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。
在 CMD 中对多个文件运行命令的标准方法\nis 命令for
。\xc2\xa0\n您可以通过键入 来获取使用信息for\xc2\xa0/?
。\xc2\xa0\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
)。
如果任何文件名包含空格,则需要在变量 ( "%F"
)\n 的第二次出现周围加上引号(如nulltermeratedstring\xe2\x80\x99s 答案所建议)\n。
您可以在括号之间放置文件名和/或通配符列表;\ne.g.,
\nfor %F in (file1 file2 a* b*) do \xe2\x80\xa6\n
Run Code Online (Sandbox Code Playgroud)\ncertutil
有点冗长。\xc2\xa0\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
消息)。
归档时间: |
|
查看次数: |
31627 次 |
最近记录: |