Konwertuj ciąg szesnastkowy na ciąg ASCII w pliku wsadowym systemu Windows [duplikat]

Jan 25 2021

W pliku wsadowym systemu Windows (cmd) chciałbym przekonwertować zawartość ciągu szesnastkowego w formularzu

4C6F67696300000000000000

do odpowiadającego mu ciągu ASCII, tutaj „Logika”. Ciąg szesnastkowy ma zawsze ten sam rozmiar (12 oktetów). Zauważ, że jest zakończony znakiem null, jeśli łańcuch ma mniej niż 12 znaków. Wymagana jest tylko konwersja zwykłych drukowalnych znaków ASCII (20-7F). Preferowane czyste roztwory wsadowe.

Odpowiedzi

1 mEm Jan 25 2021 at 01:50

Użyj certutilnarzędzia, zobacz, certutil /?aby uzyskać więcej informacji.

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