guenther123
Goto Top

Doppelte FOR-Schleife mit Variablenübernahme

Hallo Leute,

ich sitze hier an einem Problem. Ich versuche mich gerade ein wenig in Batch (.bat) Dateien und hänge an einer Doppelten For-Schleife fest.
Vielleicht hat ja jemand Lust mal da drüberzuschauen und zu zeigen, was ich falsch mache.


set "Quelle=C:\Sammlung"
set /a Durchlauf=1
set /p Doc=Wieviele Dateien:

FOR /L %%i in (1,1,%Doc%) do (
set vari=%%i

FOR /f "usebackq delims=" %%j in ("%Quelle%%Durchlauf%.txt") do (
set varj=%%j
call: AUFGABE
)

set /a Durchlauf+=1
echo "FERTIG"
)

:AUFGABE
[...]
exit /b

Das ganze sollte eigentlich z.B.: so ablaufen:

Nach dem Ausführen wird man gefragt

Wieviele Dateien: 2 [mögliche Antwort]

Nun geht er in die erste Schleife und weiß, dass er dieser 2 Mal durchlaufen muss.
Im ersten Durchlauf greift die innere/zweite For-Schleife auf das Dokument %Quelle%%Durchlauf%.txt (hier also C:\Sammlung1.txt) zu und arbeitet diese ab.

Im nächsten Schritt wird der Durchlauf-Wert um Eins erhöht. Nun sollte die innere Schleife auf C:\Sammlung2.txt zugreifen.

Das tut sie aber nicht. Sie arbeitet nur 2 mal (weil wir oben 2 eingegeben haben) die Liste C:\Sammlung1.txt ab.

Ich habe versucht "set /a Durchlauf+=1" an andere Orte zu Stellen, aber geholfen hat es nicht.

Falls jemand weiterweiß, würde ich mich über jede Antwort freuen.

Freundliche Grüße
und einen sonnigen Donnerstag

Günther

Content-Key: 167388

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

Ausgedruckt am: 28.03.2024 um 20:03 Uhr

Mitglied: Friemler
Friemler 02.06.2011 um 13:32:12 Uhr
Goto Top
Hallo Guenther,

Dein Stichwort heißt verzögerte Variablenerweiterung. Schau Dir doch mal mein Tutorial zur FOR-Schleife an.

Gruß
Friemler
Mitglied: guenther123
guenther123 02.06.2011 um 14:14:15 Uhr
Goto Top
Das war ja einfach, musste also nur

FOR /f "usebackq delims=" %%j in ("%Quelle%%Durchlauf%.txt") do (

in

FOR /f "usebackq delims=" %%j in ("%Quelle%!Durchlauf!.txt") do (

ändern.

Vielen Dank. face-smile
Mitglied: Friemler
Friemler 02.06.2011 um 14:26:55 Uhr
Goto Top
Hallo Guenther,

gern geschehen. Aber markiere den Thread doch bitte noch als gelöst.

Gruß
Friemler
Mitglied: TsukiSan
TsukiSan 02.06.2011 um 15:16:01 Uhr
Goto Top
Aber markiere den Thread doch bitte noch als gelöst.
und packe deinen Code-Schnipsel in unsere Codeformatierung. Dann bleibt's der Nachwelt besser erhalten.

Gruss
Tsuki