windowsbatch-filecommand-linecertutil

Saving result of CertUtil -hashfile to a variable and remove spaces of the hash


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!


Solution

  • 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