@ECHO OFF

:: Включение расширенной обработки команд.
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION

:: Строка в hex - в данном случае dlink.
SET "x16=646c696e6b"
CALL :Hex_To_String "%x16%" str
ECHO.%str%

PAUSE
EXIT

:Hex_To_String
:: Вызывать так: CALL :Hex_To_String %hex_x16_string% value_name
:: Где %hex_x16_string% - строка в 16-ричном hex формате
:: value_name - имя переменной, в которую вернуть значение вычисленной строки.
    SETLOCAL & SET "x16=%~1"
    SET n=45
    FOR %%A IN (- . / 0 1 2 3 4 5 6 7 8 9) DO SET "s.!n!=%%A" & SET /A n+=1
    SET n=65
    FOR %%A IN (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) DO SET "s.!n!=%%A" & SET /A n+=1
    SET n=97
    FOR %%A IN (a b c d e f g h i j k l m n o p q r s t u v w x y z) DO SET "s.!n!=%%A" & SET /A n+=1
    SET "xs="
    FOR /L %%C IN (0,2,8184) DO (
        IF "!x16:~%%C,1!"=="" GOTO _ex_Hex str
        SET /A x10=0x!x16:~%%C,2!
        CALL SET xs=!xs!%%s.!x10!%%
    )

:_ex_Hex
    ENDLOCAL & SET "%~2=%xs%"
GOTO :EOF

Ссылки по теме:

  1. CMD/BAT: hex дампер
  2. Полезные BAT/CMD скрипты
  3. Hex to string converter Online
  4. String to hex converter Online

Comments

comments powered by Disqus