flugwaps

ASCII nach HEX Konvertierung z.B. ABC nach 414243

Hallo allesamt !

ich habe da eine vielleicht etwas exotische Problemstellung
für einen selbst gebastelten Webseitengenerator.

Zwar ist das Problem schon per selbstprogrammierter exe gelöst, aber es "passt" nicht in das batch-Projekt.
(Nur für diese Funktion ruft das batch eine exe auf -> blöd)

Aufgabe :
eine Variable hat den Wert ABC und soll in die ASCII-hex-Darstellung gewandelt werden.
Es soll aus rauskommen : 414243.
... dies natürlich für den gesamten Zeichenvorrat face-smile
Könnt ihr mir Ansätze aufzeigen wie in Batch so etwas realisiert werden kann?

Grüße und besten Dank im Voraus.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 118385

Url: https://administrator.de/forum/ascii-nach-hex-konvertierung-z-b-abc-nach-414243-118385.html

Ausgedruckt am: 24.05.2025 um 09:05 Uhr

77559
77559 17.06.2009 um 11:21:56 Uhr
Goto Top
Zitat von @flugwaps:
Hallo alleine,
eine Variable hat den Wert ABC und soll in die ASCII-hex-Darstellung gewandelt werden.
Es soll aus rauskommen : 414243.
... dies natürlich für den gesamten Zeichenvorrat face-smile
Das ist erstens mit nur Batchmitteln extrem langsam und schwierig und je nach Definition von gesamten Zeichenvorrat unmöglich.
DOS 437/850 ? Ansi ? ISO 8859-1 /-15 ? UTF-8 /-16? etc..

Könnt ihr mir Ansätze aufzeigen wie in Batch so etwas realisiert werden kann?
Zeichen für Zeichen gegen ein Pseudoarray vergleichen.

Im Klartext ist es günstiger ein vorhandenes externes Programm zu benutzen.

Gruß
LotPings
bastla
bastla 17.06.2009 um 12:13:45 Uhr
Goto Top
... oder vielleicht damit das Auslangen zu finden:
@echo off & setlocal
set A=%temp%\ASC2HEX.vbs
>%A% echo A=WScript.Arguments(0):For i=1 To Len(A):H=H^& Hex(Asc(Mid(A,i,1))):Next:WScript.Echo H

set "ASC=ABCDE"  
for /f %%i in ('cscript //nologo %A% "%ASC%"') do set "HEX=%%i"  
echo %ASC% --^> %HEX%
Grüße
bastla

[Edit] Zeile 6 korrigiert [/Edit]
77559
77559 17.06.2009 um 12:22:12 Uhr
Goto Top
Hallo bastla,

du hast ja Recht face-wink

Aber damit nicht immer 414243 rauskommt, würde ich Zeile 06 ändern in
for /f %%i in ('cscript //nologo %A% "%ASC%"') do set "HEX=%%i"

Gruß
LotPings
flugwaps
flugwaps 17.06.2009 um 12:55:49 Uhr
Goto Top
In diesem Sinne : 44414E4B452021 face-smile
77559
77559 17.06.2009, aktualisiert am 18.10.2012 um 18:38:27 Uhr
Goto Top
Zitat von @flugwaps:
In diesem Sinne : 44414E4B452021 face-smile

44616E6B652021 sähe aber besser aus face-wink

Und für die Leute, die Ascii in Hex nicht direkt lesen können:

:: HEX2ASC.cmd :::::::::::::::::::::::::::::::::::::::::::::::::::::
:: [content:118385#449415]
@echo off & setlocal
Set vbs="%~dpn0.vbs"  
>%vbs% echo H=WScript.Arguments(0):For i=1 To Len(H) step 2:A=A^&chr("&H"^&Mid(H,i,2)):Next:WScript.Echo A  
set "HEX=44616E6B652021"  
for /f "delims=" %%i in ('cscript //nologo %vbs% "%HEX%"') do set "ASC=%%i"  
echo %HEX% --^> %ASC%

Gruß
LotPings
flugwaps
flugwaps 17.06.2009 um 14:56:36 Uhr
Goto Top
Sollte ein lautes Danke sein face-smile
77559
77559 17.06.2009 um 15:05:51 Uhr
Goto Top
OT
Ja, aber wenn man schreit, ist es so schwer dabei "freundlich" zu klingen. face-wink
/OT
bastla
bastla 17.06.2009 um 16:26:06 Uhr
Goto Top
@77559
Danke für's Aufräumen ... face-smile
... ich mach's dann oben auch noch richtig.

Grüße
bastla