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
Please also mark the comments that contributed to the solution of the article
Content-Key: 243279
Url: https://administrator.de/contentid/243279
Printed on: April 20, 2024 at 03:04 o'clock
4 Comments
Latest comment
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