如何在Windows系统通过命令行获取文件纯MD5哈希值
Windows命令行获取纯MD5哈希值(无多余输出)
原命令存在两个问题:一是certutil会输出操作成功的提示信息,二是tokens=1参数会导致只提取哈希的部分内容。以下是修正后的解决方案:
1. 获取带空格分隔的完整MD5哈希
执行以下命令,可屏蔽多余提示并提取完整的带空格哈希:
for /f "skip=1 tokens=* delims=" %a in ('certutil -hashfile "path\to\your\file" MD5 2^>nul') do @echo %a & goto :done
2^>nul:将certutil的标准错误流(包含成功提示)重定向到空设备,彻底屏蔽该提示;^是转义符,确保在for /f的子命令中生效。skip=1:跳过第一行的MD5 hash of file...说明行。tokens=* delims=:提取整行哈希内容,避免因空格分割丢失部分字符。goto :done:仅输出第一行哈希后终止循环,避免处理后续空行。
2. 获取无空格的纯32位MD5字符串
如果需要连续的纯哈希字符串(去掉空格),使用以下命令:
for /f "skip=1 tokens=* delims=" %a in ('certutil -hashfile "path\to\your\file" MD5 2^>nul') do @call echo %%a: =%% & goto :done
call echo %%a: =%%:通过延迟变量扩展,将哈希字符串中的空格替换为空,得到连续的32位MD5值。
内容的提问来源于stack exchange,提问作者TravelWhere
相关产品推荐
相关产品推荐

