Категории

вторник, 5 ноября 2013 г.

Hex to string cmd, bat "function"

@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