Converti una stringa esadecimale in una stringa ASCII nel file batch di Windows [duplicato]

Jan 25 2021

In un file batch di Windows (cmd), vorrei convertire il contenuto di una stringa esadecimale nel modulo

4C6F67696300000000000000

alla sua stringa ASCII equivalente, qui "Logic". La stringa esadecimale ha sempre la stessa dimensione (12 ottetti). Notare che è terminato da null se la stringa è inferiore a 12 caratteri. È richiesta solo la conversione di caratteri ASCII semplici stampabili (20-7F). Preferite soluzioni batch pure.

Risposte

1 mEm Jan 25 2021 at 01:50

Usa lo certutilstrumento, vedi certutil /?per maggiori informazioni.

setlocal enabledelayedexpansion
set "hex=4C6F67696300000000000000"
echo !hex!> temp.hex
call certutil -decodehex temp.hex str.txt >nul
set /p str=<str.txt
echo:
( del temp.hex & del str.txt )>nul
echo Your decoded string is:"!str!".
endlocal
exit /b 0