Stringsoperation unter Verwendung von Variablen
Hallo zusammen!
Mit folgendem Script verändere ich den Inhalt einer Variable :
Das Ergebnis "istein" wird korrekt ausgegeben.
Nun möchte ich aber die Werte für Position und Anzahl per Variablen angeben und habe das Script wie folgt angepasst:
Nun erhalte ich aber das falsche Ergebnis "diesisteintestppc1ppc2%".
Wo liegt hier mein Fehler?
Gruß
tegwert
Mit folgendem Script verändere ich den Inhalt einer Variable :
set str=diesisteintest
set str=%str:~4,6%
echo %str%
Das Ergebnis "istein" wird korrekt ausgegeben.
Nun möchte ich aber die Werte für Position und Anzahl per Variablen angeben und habe das Script wie folgt angepasst:
set str=diesisteintest
set ppc1=4
set ppc2=6
set str=%str:~%ppc1%,%ppc2%%
echo %str%
Nun erhalte ich aber das falsche Ergebnis "diesisteintestppc1ppc2%".
Wo liegt hier mein Fehler?
Gruß
tegwert
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 347226
Url: https://administrator.de/contentid/347226
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
1 Kommentar
Prozentzeichen werden paarig geparst. Der Interpreter sieht sie also so:
set str=%str:~%ppc1%,%ppc2%%
Wenn du verschachtelte Variablen expandieren willst, dann entweder indem du die äußeren Prozentzeichen verdoppelst und mit CALL arbeitest
oder du die verzögerte Variablenerweiterung verwendest
Grüße
rubberman
set str=%str:~%ppc1%,%ppc2%%
Wenn du verschachtelte Variablen expandieren willst, dann entweder indem du die äußeren Prozentzeichen verdoppelst und mit CALL arbeitest
call set str=%%str:~%ppc1%,%ppc2%%%
echo %str%
setlocal EnableDelayedExpansion
set str=!str:~%ppc1%,%ppc2%!
echo !str!
Grüße
rubberman