Prozentzeichen in Variable maskieren
Hallo.
Ich habe ein Passwort das ein %-Zeichen enthält.
Das übergebe ich innerhalb eines Call-Aufrufs als Parameter.
Gebe ich nun die auf diesem Parameter basierende Variable aus, ist sowohl das %-Zeichen als auch das Folgezeichen weg.
Ein Maskieren mit ^ oder ein doppeltes %% haben nicht geholfen.
Wie bekomme ich das gelöst?
Hier ein Codebeispiel:
Als Ausgabe bekomme ich dann ein 1235
Wie kann ich das %-Zeichen maskieren, damit es erhalten bleibt?
Danke für Eure Hilfe...
Ich habe ein Passwort das ein %-Zeichen enthält.
Das übergebe ich innerhalb eines Call-Aufrufs als Parameter.
Gebe ich nun die auf diesem Parameter basierende Variable aus, ist sowohl das %-Zeichen als auch das Folgezeichen weg.
Ein Maskieren mit ^ oder ein doppeltes %% haben nicht geholfen.
Wie bekomme ich das gelöst?
Hier ein Codebeispiel:
CALL :subroutine "123%456"
GOTO :EOF
:subroutine
SET parameter=%~1
ECHO %parameter%
GOTO :EOF
Als Ausgabe bekomme ich dann ein 1235
Wie kann ich das %-Zeichen maskieren, damit es erhalten bleibt?
Danke für Eure Hilfe...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 165026
Url: https://administrator.de/contentid/165026
Ausgedruckt am: 05.11.2024 um 12:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo @WiSch,
du musst das Prozentzeichen hier doppelt maskieren, eine doppelte maskierung benötigt 4 prozentzeichen, da jeweils 2 %-Zeichen zu einem geparst werden.
Der Ausdruck "123%456" innerhalb eines batchscripts wird hier 2 mal geparst. Einmal bei Aufruf der subroutine und dann nochmal beim Aufruf des SET-Befehls.
Deswegen muss es heißen:
Gruß
Snow
du musst das Prozentzeichen hier doppelt maskieren, eine doppelte maskierung benötigt 4 prozentzeichen, da jeweils 2 %-Zeichen zu einem geparst werden.
Der Ausdruck "123%456" innerhalb eines batchscripts wird hier 2 mal geparst. Einmal bei Aufruf der subroutine und dann nochmal beim Aufruf des SET-Befehls.
Deswegen muss es heißen:
CALL subroutine "123%%%%456"
Gruß
Snow