@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
Ссылки по теме:
Comments
comments powered by Disqus