问题
I want to save a result of
CertUtil -hashfile "path_to_file" MD5
to a variable and remove spaces of the hash in command line command (to be more particular, I wan to use this in Command Line of post-processing in VS 2015 C++).
Currently the result is as follows:
1) C:\Users\admin>CertUtil -hashfile ping.txt MD5
2) MD5 hash of file ping.txt:
3) 4f 75 c2 2c 20 b4 81 54 72 2c a5 7c 95 7a 66 88
4) CertUtil: -hashfile command completed successfully.
I just need the line 3)
- save the hexa string to a variable and then remove the spaces.
Thanks a lot!
回答1:
Despite the answer above, typicall setlocal enabledelayedexpansion issue
@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
回答2:
I am totally late to this, but how about just using find to get rid of the unwanted lines:
CertUtil -hashfile "path_to_file" MD5 | find /i /v "md5" | find /i /v "certutil"
回答3:
you can with this ready to use MD5.bat:
call MD5.bat "path_to_file" md5_var
echo %md5_var%
if don't want a whole new separate script you can just use the last for loop from the link.
回答4:
Use powershell command:
$(CertUtil -hashfile C:\TEMP\MyDataFile.img MD5)[1] -replace " ",""
来源:https://stackoverflow.com/questions/38771114/saving-result-of-certutil-hashfile-to-a-variable-and-remove-spaces-of-the-hash