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-Key: 347226

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

Printed on: April 25, 2024 at 04:04 o'clock

Member: rubberman
Solution rubberman Aug 24, 2017 at 23:30:16 (UTC)
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