tegwert
Goto Top

Stringsoperation unter Verwendung von Variablen

Hallo zusammen!

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

Content-ID: 347226

Url: https://administrator.de/contentid/347226

Ausgedruckt am: 22.11.2024 um 21:11 Uhr

rubberman
Lösung rubberman 25.08.2017 um 01:30:16 Uhr
Goto Top
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
call set str=%%str:~%ppc1%,%ppc2%%%
echo %str%
oder du die verzögerte Variablenerweiterung verwendest
setlocal EnableDelayedExpansion
set str=!str:~%ppc1%,%ppc2%!
echo !str!

Grüße
rubberman