Stringanipulation innerhalb einer FOR F Schleife
Hallo,
ich würde gerne innerhalb einer FOR / F Schleife eine Variable (z.B. GKxxxxxxxxxx) "beschneiden", so das ich nur noch die ersten beiden Zeichen habe.
Normalerweise geht das ja wie folgt
Ausgabe
"GK"
In einer FOR / F Loop spreche ich die Variable die aus der Loop gebildet wird aber mit %%x an.
Und um danach die neue oder angepasste Variable innerhalb der Loop zu verwenden nutze ich !x!.
Es klappt aber leider nicht mit
Wo liegt hier mein Fehler?
Bei der Platzierung der % bin ich mir auch nicht sicher und habe z.B. auch set x=%%x:~0,2 versucht, leider ohne Erfolg.
Gibt es eine anderen Weg aus einer x=GKxxxxxx die ersten beiden Zeichen zu extrahieren?
Danke und beste Grüße
Joker
ich würde gerne innerhalb einer FOR / F Schleife eine Variable (z.B. GKxxxxxxxxxx) "beschneiden", so das ich nur noch die ersten beiden Zeichen habe.
Normalerweise geht das ja wie folgt
set x=GKxxxxxx
set x=%x:~0,2%
echo %x%
Ausgabe
"GK"
In einer FOR / F Loop spreche ich die Variable die aus der Loop gebildet wird aber mit %%x an.
Und um danach die neue oder angepasste Variable innerhalb der Loop zu verwenden nutze ich !x!.
Es klappt aber leider nicht mit
FOR /F %%x in (.......) do (
set x=%%x:~0,2%
echo !x!
)
Wo liegt hier mein Fehler?
Bei der Platzierung der % bin ich mir auch nicht sicher und habe z.B. auch set x=%%x:~0,2 versucht, leider ohne Erfolg.
Gibt es eine anderen Weg aus einer x=GKxxxxxx die ersten beiden Zeichen zu extrahieren?
Danke und beste Grüße
Joker
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 360588
Url: https://administrator.de/contentid/360588
Ausgedruckt am: 24.11.2024 um 21:11 Uhr
2 Kommentare
Neuester Kommentar
Servus Joker,
erstens fehlt dir hier das Statement setlocal enabledelayedexpansion und du musst in der Schleife die Variable erst mal einer neuen zuweisen denn Stringmanipulationen mit der Schleifenvariable %%x funktionieren nicht
Alternativ auch immer mit call set wenn z.B. Schleifenvariablen ineinander geschachtelt werden müssen
Ich empfehle dir folgendes Tutorial zur FOR-Schleife al eingehend zu lesen:
Tutorial zur FOR-Schleife
Und https://ss64.com/nt/delayedexpansion.html
Dann sollten keine Fragen mehr offen sein.
Grüße Uwe
erstens fehlt dir hier das Statement setlocal enabledelayedexpansion und du musst in der Schleife die Variable erst mal einer neuen zuweisen denn Stringmanipulationen mit der Schleifenvariable %%x funktionieren nicht
@echo off &setlocal ENABLEDELAYEDEXPANSION
FOR /F %%x in (.......) do (
set "var=%%x"
set "var=!var:~0,2!"
echo(!var!
)
@echo off &setlocal ENABLEDELAYEDEXPANSION
for /f %%x in (.......) DO (
set "var=%%x"
call set "var=%%var:~0,2%%"
echo(!var!
)
Tutorial zur FOR-Schleife
Und https://ss64.com/nt/delayedexpansion.html
Dann sollten keine Fragen mehr offen sein.
Grüße Uwe