# Batch, For-Schleife initialsieren



## rkrause (1. Februar 2008)

set winrar_log_unbekanntes_format=1
For /F "delims=" %%k in ('findstr "Das Archiv hat entweder ein unbekanntes Format oder ist" "%quell_verzeichnis%%winrar_log%"') Do @Set winrar_log_unbekanntes_format=%%k

Folgendes Problem tritt auf:
Ich benutze mehrere For-Schleifen und habe festgestellt, das manchmal Rester aus anderen For-Schleifen auftauchen (und dadurch die Abbruchbedingung falsch ist), da ich aus der For-Schleife vorher rausgesprungen bin und ich dann später einfach eine neue Aufrufe.

Gibt es eine Möglichkeit, das ich die neue FOR-Schleife neu initialisiere ohne das irgendwelche "Rester" wieder bringt.

Kleines Bsp (sehr einfach)
- 1. Text-Datei hat zwei Zeilen mit "a" und "b"
- 1. For-schleife soll "a" suchen und wenn es gefunden wurde was neues machen

Soweit ja ok
- 2. Text-Datei hat auch zwei Zeilen mit "c" und "d"
- 2. For-Schleife schaut, ob es "e" gibt, da das ja nicht in der Datei ist, sollte die %%k-Variable ja leer sein. IST SIE ABER NICHT und es steht als Ergebniss einfach "b" da.

Bis jetzt habe ich immer irgendwelche Hilfsfunktion geschrieben, gibt es aber auch die Möglichkeit, die FOR-Schleife so zu initialisieren OHNE das die alten Rester wieder auftauchen.

Ich Denke mal, das Problem ist, das die FOR-Schleifen vorher beendet werden!!


----------



## olqs (2. Februar 2008)

Vielleicht hilft die das weiter
http://www.microsoft.com/technet/prodtechnol/Windows2000serv/support/FAQW2KCP.mspx
und dann unten auf "What is delayed environment variable expansion?" klicken.

Es steht dazu auch etwas unter "help set"


----------

