Converter string hexadecimal em string ASCII no arquivo de lote do Windows [duplicado]

Jan 25 2021

Em um arquivo de lote do Windows (cmd), gostaria de converter o conteúdo de uma string hexadecimal no formato

4C6F67696300000000000000

à sua string ASCII equivalente, aqui "Lógica". A string hexadecimal tem sempre o mesmo tamanho (12 octetos). Observe que ele é terminado em nulo se a string tiver menos de 12 caracteres. É necessária apenas a conversão de caracteres ASCII para impressão simples (20-7F). Soluções puras em lote são preferidas.

Respostas

1 mEm Jan 25 2021 at 01:50

Use a certutilferramenta, veja certutil /?para mais informações.

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