Преобразование шестнадцатеричной строки в строку ASCII в пакетном файле Windows [дубликат]

Jan 25 2021

В пакетном файле Windows (cmd) я хотел бы преобразовать содержимое шестнадцатеричной строки в форму

4C6F67696300000000000000

эквивалентной строке ASCII, здесь "Logic". Шестнадцатеричная строка всегда одного размера (12 октетов). Обратите внимание, что он заканчивается нулем, если строка меньше 12 символов. Требуется только преобразование обычных печатных символов ASCII (20-7F). Предпочтительны чистые периодические растворы.

Ответы

1 mEm Jan 25 2021 at 01:50

Используйте certutilинструмент, см. certutil /?Дополнительную информацию.

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