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
Please also mark the comments that contributed to the solution of the article
Content-Key: 595582
Url: https://administrator.de/contentid/595582
Printed on: April 27, 2024 at 04:04 o'clock
3 Comments
Latest comment
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%