将CertUtil -hashfile的结果保存到变量并删除哈希

时间:2016-08-04 15:08:34

标签: windows batch-file command-line certutil

我想保存

的结果
CertUtil -hashfile "path_to_file" MD5

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

目前结果如下:

  

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

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

4 个答案:

答案 0 :(得分:11)

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

 CertUtil -hashfile "path_to_file" MD5 | find /i /v "md5" | find /i /v "certutil"

答案 1 :(得分:3)

您可以随时使用MD5.bat

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

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

答案 2 :(得分: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

答案 3 :(得分:0)

使用powershell命令:

&array