
如果您需要对一个文件夹内的所有文件统一获取其 MD5 或 SHA256 哈希值,以便批量验证完整性或生成校验清单,则可借助 Windows 原生命令工具实现自动化处理。以下是多种可行的批量提取方法:
一、使用 certutil 批量计算并输出到文本文件
certutil 是 Windows 内置命令行工具,无需安装,支持在单个命令中遍历指定类型文件并逐个计算哈希,结果可重定向保存至外部文本文件,便于归档比对。
1、按 Win + R 打开“运行”对话框,输入 cmd 并回车,启动命令提示符。
2、使用 cd /d 切换至目标文件夹路径,例如:cd /d D:\Downloads\packages。
3、执行以下命令批量计算所有 .exe 文件的 SHA256 值并写入 hashes_sha256.txt:
for %f in (*.exe) do @certutil -hashfile “%f” SHA256 >> hashes_sha256.txt
4、若需计算 MD5 值,将命令末尾的 SHA256 替换为 MD5,并建议另存为 hashes_md5.txt 以避免覆盖。
5、执行完毕后,检查当前目录下是否生成对应文本文件;每条记录包含文件名与两行哈希输出(第二行为纯哈希字符串,无空格)。
二、使用 PowerShell 脚本批量获取并结构化输出
PowerShell 提供更灵活的对象处理能力,可对文件集合统一调用 Get-FileHash,并导出为 CSV 格式,保留算法、哈希值、完整路径等字段,适合后续 Excel 打开或程序解析。
1、右键点击“开始”按钮,选择 Windows PowerShell(管理员) 启动。
2、切换至目标文件夹,例如:Set-Location “D:\Downloads\packages”。
3、运行以下命令批量计算所有文件的 SHA256 值,并导出为 CSV:
Get-ChildItem * | Get-FileHash -Algorithm SHA256 | Select-Object Algorithm, Hash, Path | Export-Csv -Path “sha256_report.csv” -Encoding UTF8 -NoTypeInformation
4、如需同时导出 MD5 值,再执行一次并更换算法参数:Get-ChildItem * | Get-FileHash -Algorithm MD5 | Select-Object Algorithm, Hash, Path | Export-Csv -Path “md5_report.csv” -Encoding UTF8 -NoTypeInformation。
5、生成的 CSV 文件可用 Excel 或记事本打开;Hash 字段为大写32位(MD5)或64位(SHA256)十六进制字符串,无空格、无前缀。
三、使用 7-Zip 命令行(7z.exe)批量生成哈希列表
7-Zip 的命令行工具 7z.exe 支持批量哈希计算,输出格式简洁,适用于已部署 7-Zip 且需跨平台脚本兼容的环境;其输出默认含文件大小与哈希值,便于人工快速核对。
1、确认 7z.exe 已加入系统环境变量 PATH;否则需先使用 cd 进入其安装目录(如 C:\Program Files\7-Zip)。
2、切换至待处理文件夹,例如:cd /d D:\Downloads\packages。
3、执行以下命令批量计算所有 .zip 文件的 SHA256 值并追加至日志:
for %f in (*.zip) do @7z h -scrcsha256 “%f” >> sha256_7z.log
4、若需 MD5,替换参数为 -scrcmd5,并另存为 md5_7z.log。
5、日志中每行格式为:a1b2c3d4… 1048576 filename.zip;其中首段为哈希值,中间为字节数,末尾为文件名;哈希值部分为小写、无空格、长度固定(32字符MD5/64字符SHA256)。
四、通过批处理文件(.bat)一键执行多算法批量校验
将 certutil 多次调用封装为可复用的批处理脚本,能一次性为同一文件集生成 MD5、SHA256 两份独立报告,避免重复切换命令,提升操作效率与一致性。
1、用记事本新建文本文件,输入以下内容:
@echo off
setlocal enabledelayedexpansion
set “FOLDER=%~dp0”
cd /d “%FOLDER%”
echo 正在批量计算 MD5… > md5_batch.log
for %%f in (*.*) do certutil -hashfile “%%f” MD5 >> md5_batch.log
echo. >> md5_batch.log
echo 正在批量计算 SHA256… > sha256_batch.log
for %%f in (*.*) do certutil -hashfile “%%f” SHA256 >> sha256_batch.log
2、将文件保存为 batch_hash.bat,并将其复制到目标文件夹内。
3、双击运行该 .bat 文件;运行结束后,当前目录将生成 md5_batch.log 和 sha256_batch.log 两个日志文件。
4、每个日志文件中,每组输出以文件名开头,后跟两行哈希值;第二行哈希值可直接用于比对,注意去除可能存在的不可见控制字符。

评论(0)