Cmd 验证文件的md5
我想制作一个批处理文件,该文件:Cmd 验证文件的md5,cmd,md5,Cmd,Md5,我想制作一个批处理文件,该文件: 将md5设置为变量“temp” 获取新文件的md5并将其设置为“newmd5” 将temp与newmd5进行比较 如果相等,则回显“ok”。否则会回显“错误文件” 这是我到目前为止写的: @ECHO OFF set temp=202cb962ac59075b964b07152d234b70 CertUtil -hashfile test123.txt MD5 PAUSE 结果是: test123.txt的MD5哈希: 202cb962ac59075b964b0
@ECHO OFF
set temp=202cb962ac59075b964b07152d234b70
CertUtil -hashfile test123.txt MD5
PAUSE
结果是:
test123.txt的MD5哈希:
202cb962ac59075b964b07152d234b70
CertUtil:-hashfile命令已成功完成。
按任意键继续。。
我一直坚持在“newmd5”变量中设置输出md5,并将其与temp进行比较。,因此您的问题可以简化为“如何将certutil给出的md5设置为变量?” 这可以通过
for/f
循环完成:
set "test="
for /f "skip=1 delims=" %%a in ('certutil -hashfile test123.txt MD5') do if not defined test set "test=%%a"
set "test=%test: =%"
“skip=1”
将跳过第一行(MD5有……
),如果未定义,则只考虑第二行(散列),忽略第三行(CertUtil:-hashfile命令已成功完成。
)
我想您不需要使用if
命令来比较这两个变量。谢谢,这在windows 10上非常有用。但在windows 7或xp中,md5用空格分隔,例如f9 8b ae 8f。。。。。在这种情况下,重新结果仅为“f9”,如何对此情况进行修复?