Mehrere Werte aus FOR Schleife in eine Variable
Hallo
Also ich komm einfach nicht weiter.
Folgendes Problem.
Meine aktueller String lautet so:
Das Funktioniert auch.
Nur ist es eben möglich das in der Datei es mehrere Einträge mit dem rotate geben kann. Das ist leider immer unterschiedlich.
Ist es da irgendwie möglich alle gefundenen Werte in eine Variable zu schreiben?
Vielen Dank
Also ich komm einfach nicht weiter.
Folgendes Problem.
Meine aktueller String lautet so:
for /f "Tokens=1-15" %%a in ('"type 1.svg | findstr rotate(0.0)"') do (echo %%h %%i")
Das Funktioniert auch.
Nur ist es eben möglich das in der Datei es mehrere Einträge mit dem rotate geben kann. Das ist leider immer unterschiedlich.
Ist es da irgendwie möglich alle gefundenen Werte in eine Variable zu schreiben?
Vielen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 243279
Url: https://administrator.de/contentid/243279
Ausgedruckt am: 17.11.2024 um 19:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo sugram.
Also so etwas wie ein Array wird in Batch nicht unterstützt.
- du kannst die gefundenen Werte in eine temporäre Datei schreiben, aus der du sie bei Bedarf wieder ausliest
- du kannst ein "assoziatives Array" erstellen, das aus mehreren Einzelvariablen besteht (zB: %var_0%, %var_1% etc.)
- du kannst weitere Werte an einen Variablenwert anhängen, getrennt durch ein definiertes Zeichen (zB: Wert1;Wert2;Wert3 ...)
- du kannst gleich mit den FOR Variablen %%h und %%i im Klammerausdruck nach dem DO arbeiten
- du kannst für jeden gefundenen Wert eine Subroutine aufrufen, in der du diesen verarbeitest
Die beiden Letzteren solltest du bevorzugen. Aber ohne Kenntnis deines Vorhabens oder deines Codes kann ich dir nicht zu irgend etwas raten.
Grüße
rubberman
EDIT: ersten und letzten Punkt hinzugefügt
Also so etwas wie ein Array wird in Batch nicht unterstützt.
- du kannst die gefundenen Werte in eine temporäre Datei schreiben, aus der du sie bei Bedarf wieder ausliest
- du kannst ein "assoziatives Array" erstellen, das aus mehreren Einzelvariablen besteht (zB: %var_0%, %var_1% etc.)
- du kannst weitere Werte an einen Variablenwert anhängen, getrennt durch ein definiertes Zeichen (zB: Wert1;Wert2;Wert3 ...)
- du kannst gleich mit den FOR Variablen %%h und %%i im Klammerausdruck nach dem DO arbeiten
- du kannst für jeden gefundenen Wert eine Subroutine aufrufen, in der du diesen verarbeitest
Die beiden Letzteren solltest du bevorzugen. Aber ohne Kenntnis deines Vorhabens oder deines Codes kann ich dir nicht zu irgend etwas raten.
Grüße
rubberman
EDIT: ersten und letzten Punkt hinzugefügt
Hallo sugram.
Beispiel:
Grüße
rubberman
Ich benötige dann die Werte 1271.0 als X und 993.0 als Y. Die ich dann weiterverarbeiten möchte.
Soweit war mir das ziemlich klar. Die Frage war wie verarbeitest du die Werte weiter.Beispiel:
@echo off &setlocal
for /f "tokens=2 delims=()" %%i in ('type "1.svg" ^| findstr /c:"rotate(0.0)"') do (
for /f "tokens=1,2" %%j in ("%%i") do (
set "X=%%j"
set "Y=%%k"
call :procCoordinates
)
)
pause
goto :eof
:procCoordinates
echo Arbeite hier mit %X% und %Y% ...
goto :eof
rubberman