Aufbereitung von hex-String für "hex" to ascii mittels Batch
Hallo,
mit diesem Batch-Code-Schipsel:
lässt sich grundsätzlich der Inhalt der Variablen "hex" in die String-Variable "str" umwandeln.
Dieser Teil:
ist notwendig, da sonst die Sache nicht funktioniert.
Allerdings entfern
etwas mehr, als gewünscht, bspw hier 610068005F00700074
Ich bin auf der Suche nach einer Möglichkeit, den hex-"String" so aufzubereiten, dass alle Doppelnullen verschwinden, aber die notwendigen Informationen bleiben.
Kann man mit einer For-Schleife über den hex-"String" gehen und diesen so auslesen, dass man bspw. immer ein Zeichenpaar übernimmt und ein Zeichenpaar verwirft?
Wie würde man das machen?
Neugierige Grüße,
Andreas
mit diesem Batch-Code-Schipsel:
set "str="
set "hex=610068005F00700074"
set "hex=00%hex%" rem führt zu "00610068005F00700074"
set "hex=%hex:00= 0x%" rem führt zu " 0x61 0x68 0x5F 0x7 0x74"
for %%H in (%hex%) do (
for /l %%N in (%%H 1 %%H) do cmd /c exit %%N
set "str=!str!!=ExitCodeASCII!"
)
echo %str%
pause
lässt sich grundsätzlich der Inhalt der Variablen "hex" in die String-Variable "str" umwandeln.
Dieser Teil:
set "hex=610068005F00700074"
set "hex=00%hex%"
set "hex=%hex:00= 0x%"
Allerdings entfern
set "hex=%hex:00= 0x%"
etwas mehr, als gewünscht, bspw hier 610068005F00700074
Ich bin auf der Suche nach einer Möglichkeit, den hex-"String" so aufzubereiten, dass alle Doppelnullen verschwinden, aber die notwendigen Informationen bleiben.
Kann man mit einer For-Schleife über den hex-"String" gehen und diesen so auslesen, dass man bspw. immer ein Zeichenpaar übernimmt und ein Zeichenpaar verwirft?
Wie würde man das machen?
Neugierige Grüße,
Andreas
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 595582
Url: https://administrator.de/contentid/595582
Ausgedruckt am: 22.11.2024 um 07:11 Uhr
3 Kommentare
Neuester Kommentar
Warum man sich für sowas noch mit Batch einen abreißen muss kann ich zwar nicht nachvollziehen aber naja ...
@echo off & setlocal enabledelayedexpansion
set "hex=610068005F00700074"
set "hex=00%hex%"
call :strLength strLen "%hex%"
set /a strLen-=1
for /l %%a in (0 2 %strLen%) do (
set "val=0x!hex:~%%a,2!"
for /l %%b in (!val! 1 !val!) do cmd /c exit %%b
set "str=!str!!=ExitCodeASCII!"
)
echo %str%
goto :eof
:strLength
set "#=%~2"
set length=0
:stringLengthLoop
if defined # (set #=%#:~1%&set /A length += 1&goto stringLengthLoop)
set "%~1=%length%"
goto :eof
Bidde.
Mit n büßschen Powershell auch als Einzeiler in ner Batch
Mit n büßschen Powershell auch als Einzeiler in ner Batch
@echo off
chcp 65001 >nul
set "hex=610068005F00700074"
for /f %%a in ('powershell -EP Bypass -C "[System.Text.Encoding]::UTF8.GetString(([regex]::matches('00%hex%','.{4}').Value | %%{[byte][convert]::ToUInt32($_,16)}))"') do set "str=%%a"
echo %str%