批量生成文件MD5校验码脚本需求:遍历文件列表并格式化输出
Windows批处理脚本:批量生成文件MD5校验结果
以下是实现需求的批处理脚本,可读取filepathlist.txt中的所有文件路径,批量执行MD5校验,并按「路径 MD5值」的格式输出结果到md5checksums.txt:
@echo off setlocal enabledelayedexpansion :: 清空输出文件(若需追加而非覆盖,将>改为>>即可) echo. > md5checksums.txt :: 逐行读取filepathlist.txt中的文件路径 for /f "delims=" %%i in (filepathlist.txt) do ( :: 跳过空行 if not "%%i"=="" ( :: 调用certutil获取MD5值,过滤出有效哈希行 for /f "skip=1 tokens=2" %%j in ('certutil -hashfile "%%i" MD5') do ( :: 按指定格式写入结果文件 echo %%i %%j >> md5checksums.txt :: 跳出内层循环,避免处理多余输出行 goto :nextfile ) :nextfile ) ) echo 批量MD5校验完成,结果已保存到md5checksums.txt endlocal
关键部分说明
@echo off:关闭命令回显,让运行过程更简洁for /f "delims=" %%i in (filepathlist.txt):完整读取文件中的每一行路径(包括带空格的路径)skip=1 tokens=2:跳过certutil输出的第一行(文件路径提示行),提取第二行的MD5哈希值goto :nextfile:避免处理certutil输出的空行和结尾提示行,只保留第一个有效哈希值
使用注意事项
filepathlist.txt需每行存放一个完整文件路径,例如C:\data\report.xml或D:\files\我的文档.pdf- 若你的系统中
certutil输出为英文,脚本无需调整(英文环境下skip=1依然能跳过路径提示行) - 若需要保留原有结果文件的内容,将脚本中
echo. > md5checksums.txt的>改为>>
内容的提问来源于stack exchange,提问作者cc0327
相关产品推荐
相关产品推荐

