Windowsバッチファイルで16進文字列をASCII文字列に変換[複製]
Windowsバッチ(cmd)ファイルで、16進文字列の内容を次の形式に変換したい
4C6F67696300000000000000
同等のASCII文字列(ここでは「ロジック」)に変換します。16進文字列は常に同じサイズ(12オクテット)です。文字列が12文字未満の場合は、nullで終了することに注意してください。プレーンな印刷可能なASCII文字(20-7F)の変換のみが必要です。純粋なバッチソリューションが望ましい。
回答
1 mEm
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