Convierta una cadena hexadecimal en una cadena ASCII en un archivo por lotes de Windows [duplicado]

Jan 25 2021

En un archivo por lotes de Windows (cmd), me gustaría convertir el contenido de una cadena hexadecimal en la forma

4C6F67696300000000000000

a su cadena ASCII equivalente, aquí "Lógica". La cadena hexadecimal es siempre del mismo tamaño (12 octetos). Tenga en cuenta que termina en nulo si la cadena tiene menos de 12 caracteres. Solo se requiere la conversión de caracteres ASCII simples e imprimibles (20-7F). Se prefieren las soluciones de lotes puros.

Respuestas

1 mEm Jan 25 2021 at 01:50

Utilice la certutilherramienta, consulte certutil /?para obtener más información.

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