Windowsバッチファイルで16進文字列をASCII文字列に変換[複製]

Jan 25 2021

Windowsバッチ(cmd)ファイルで、16進文字列の内容を次の形式に変換したい

4C6F67696300000000000000

同等のASCII文字列(ここでは「ロジック」)に変換します。16進文字列は常に同じサイズ(12オクテット)です。文字列が12文字未満の場合は、nullで終了することに注意してください。プレーンな印刷可能な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