
84544
15.01.2010, aktualisiert um 21:04:27 Uhr
Foreach in Batch umsetzen
Hallo,
gibt es eine Möglichkeit mit Batch eine foreach-Schleife umzusetzen?
Die foreach soll dann aus einer Datei xyz.txt Werte auslesen
Inhalt:
46723456,835462,2567889,22346787,1678895, usw.
Die Anzahl der Werte ist UNbestimmt.
Möglich wäre natürlich.
:schleife
set tok=1
for /f "tokens=%tok% delims=," %%g in ('xyz.txt') do set var=%%g
das was mit der Variable passieren soll.......
z.B.
echo %var% >> abc.txt
if %var%=="" goto ende
set /a tok=%tok%+1
goto schleife
:ende
exit
Aber mir kommt das zu umständlich vor.
Das müsste man doch irgendwie einfacher machen können.
Ich bedanke mich schonmal im Varraus für eure Hilfe^^
gibt es eine Möglichkeit mit Batch eine foreach-Schleife umzusetzen?
Die foreach soll dann aus einer Datei xyz.txt Werte auslesen
Inhalt:
46723456,835462,2567889,22346787,1678895, usw.
Die Anzahl der Werte ist UNbestimmt.
Möglich wäre natürlich.
:schleife
set tok=1
for /f "tokens=%tok% delims=," %%g in ('xyz.txt') do set var=%%g
das was mit der Variable passieren soll.......
z.B.
echo %var% >> abc.txt
if %var%=="" goto ende
set /a tok=%tok%+1
goto schleife
:ende
exit
Aber mir kommt das zu umständlich vor.
Das müsste man doch irgendwie einfacher machen können.
Ich bedanke mich schonmal im Varraus für eure Hilfe^^
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 133596
Url: https://administrator.de/forum/foreach-in-batch-umsetzen-133596.html
Ausgedruckt am: 27.04.2025 um 18:04 Uhr
6 Kommentare
Neuester Kommentar

Zitat von @84544:
Hallo,
gibt es eine Möglichkeit mit Batch eine foreach-Schleife umzusetzen?
Die Anzahl der Werte ist UNbestimmt.
Ich bedanke mich schonmal im Varraus für eure Hilfe^^
Hallo,
gibt es eine Möglichkeit mit Batch eine foreach-Schleife umzusetzen?
Die Anzahl der Werte ist UNbestimmt.
Ich bedanke mich schonmal im Varraus für eure Hilfe^^
gib doch mal for /? im Befehlsinterpreter deiner Wahl ein.
weder den Zähler, noch die Sprungmarke :schleife braucht man.
Und das wäre doch auch witzlos, wenn man zuerst wissen müßte, wieviele Treffer in einer Datei wären, um die mit einer For Schleife auszuwerten.
Gruß
Hallo marci3xXx!
Ist vielleicht wirklich nicht ganz einfach herauszulesen ...
Versuch es damit:
Soferne Du noch mehr mit den eingelesenen Werten vorhast (und diese daher tatsächlich jeweils einer Variablen zuweisen möchtest), kommt es darauf an, ob es in den Daten ein "!" gibt oder nicht - in ersterem Falle etwa so:
Für den Fall 2:
Grüße
bastla
Ist vielleicht wirklich nicht ganz einfach herauszulesen ...
Versuch es damit:
for /f "delims=" %%g in (xyz.txt) do for %%i in (%%g) do >>abc.txt echo %%i
@echo off & setlocal enabledelayedexpansion
for /f "delims=" %%g in (xyz.txt) do for %%i in (%%g) do (
set "var=%%i"
echo !var!
)
@echo off & setlocal
for /f "delims=" %%g in (xyz.txt) do for %%i in (%%g) do set "var=%%i" & call :ProcessValue
goto :eof
:ProcessValue
echo %var%
goto :eof
bastla
Hallo Marci3xXx!
Ob es tatsächlich eine Beschränkung gibt, wird uns vermutlich Biber sagen können - mir ist dazu nix bekannt ...
Wenn Du die Unterprogrammvariante wählst, beginnt bei "
Grüße
bastla
Ob es tatsächlich eine Beschränkung gibt, wird uns vermutlich Biber sagen können - mir ist dazu nix bekannt ...
Wenn Du die Unterprogrammvariante wählst, beginnt bei "
:ProcessValue
" ein zusätzlicher Batch in einer neuen Instanz - da wirst Du auf jeden Fall genug Platz haben.Grüße
bastla