10

我想保存结果

CertUtil -hashfile "path_to_file" MD5

到一个变量并删除命令行命令中的哈希空格(更具体地说,我想在 VS 2015 C++ 的后处理命令行中使用它)。

目前结果如下:

1) C:\Users\admin>CertUtil -hashfile ping.txt MD5
2) 文件 ping.txt 的 MD5 哈希:
3) 4f 75 c2 2c 20 b4 81 54 72 2c a5 7c 95 7a 66 88
4) CertUtil: -hashfile命令成功完成。

我只需要这一行3)- 将六进制字符串保存到变量中,然后删除空格。非常感谢!

4

4 回答 4

16

我完全迟到了,但是如何使用 find 来摆脱不需要的行:

 CertUtil -hashfile "path_to_file" MD5 | find /i /v "md5" | find /i /v "certutil"
于 2017-03-09T22:01:29.830 回答
4

使用 powershell 命令:

$(CertUtil -hashfile C:\TEMP\MyDataFile.img MD5)[1] -replace " ",""
于 2019-10-14T00:16:58.480 回答
3

你可以用这个准备好使用MD5.bat

call MD5.bat  "path_to_file" md5_var
echo %md5_var%

如果不想要一个全新的单独脚本,您可以使用链接中的最后一个 for 循环。

于 2016-08-04T15:50:35.147 回答
3

尽管上面的答案,典型的setlocal enabledelayedexpansion问题

@echo off
setlocal enabledelayedexpansion
set /a count=1 
for /f "skip=1 delims=:" %%a in ('CertUtil -hashfile "ping.txt" MD5') do (
  if !count! equ 1 set "md5=%%a"
  set/a count+=1
)
set "md5=%md5: =%
echo %md5%
endlocal
exit/B
于 2016-08-04T16:01:04.187 回答