for %a in (*.*) do Befehl %a
- Einstieg in die Batch-Programmierung: Stapellauf unter Windows 7
- copy hilfe.txt r:
- set tempo
- for %a in (*.*) do Befehl %a
Schleifen...
Schleifen

Eine wichtige Eigenschaft bei der Automation ist die Bearbeitung von Gruppen, statt Einzelwerten. Auf DOS-Ebene dient hierfür die For-Schleife. In ihrem klassischen Einsatz bearbeitet sie eine Gruppe von Dateien: for %a in (*.*) do Befehl %a. Jeder Dateiname des aktuellen Verzeichnisses wird dabei nacheinander der Variablen %a übergeben und dann je ein Befehl aufgerufen, dem Sie wieder als Parameter %a übergeben.
Im einfachsten Fall geben Sie for %a in (*.*) do @echo %a ein. Verwenden Sie die Variable statt auf der Kommandozeile in einer Batch-Datei, müssen Sie zwei statt einem Prozentzeichen verwenden: for /r %%b in (*.*) do @echo %%b>>test.dat. Das Beispiel nennt die Variable b und leitet die Ergebnisse aller Durchläufe in die Datei Test.dat um. Der Parameter /r veranlasst die For-Schleife zum rekursiven Aufruf.
Dadurch lesen Sie zu allen Dateinamen des aktuellen Verzeichnisses in die Variable %%b noch die Dateinamen in allen Unterverzeichnissen ein. Ist das aktuelle Verzeichnis das Root-Verzeichnis wie C:\, schreiben Sie alle Dateinamen der ganzen Partition mit dem kompletten Zugriffspfad in die Datei Test.dat. Mit For-Schleifen lassen sich zudem Dateiinhalte zerlegen und analysieren, Verzeichnisse bearbeiten oder auch Wertebereiche samt Schrittweiten verwenden.
Letzteres sieht etwa so aus: for /L %d in (1,1,255) do echo Dies ist Zeile %d>>test2.dat. Die drei Werte in der Klammer bezeichnen Startwert, Schrittweite und Endwert. Damit wird dann nicht nur eine Schleife, in diesem Fall 255fach, durchlaufen, sondern jeder Wert lässt sich auch als Zahlenwert weiterverwenden. Das Beispiel leitet ihn in die Datei Test2.dat um.
Sie finden sicherlich Einsatzgebiete, in denen Ihnen bereits die vorgestellten Varianten der For-Schleife sehr viel Arbeit abnehmen. Das komplette Beispiel findet sich mit weiteren Erläuterungen in For1.bat auf der Heft-DVD. Natürlich konstruieren Sie mit Sprungmarken auch Endlosschleifen oder lassen das Ergebnis einer If-Auswertung aus der Endlosschleife springen:
:Anfang
rem Beliebige Befehle
if exist ergebnis.txt goto Ende
goto Anfang
:Ende
Errorlevel, Kommentare
Beliebige Programme und Batch-Programme verständigen sich auf unterschiedliche Art. Die wichtigste Art der Kommunikation besteht darin, Errorlevel-Codes auszuwerten. Praktisch jeder Compiler oder jedes bessere Script-System erlaubt es, dem folgenden Programm einen Fehlerwert zu übergeben.
Der Errorlevel-Wert 0 definiert üblicherweise eine erfolgreiche Operation, Werte zwischen 1 und 255 melden meist Fehler. Reagiert also ein Anwendungsprogramm zuverlässig auf einen Fehler, leitet auch das auswertende Batch-Programm die notwendigen Schritte ein.
Wichtig dabei ist, dass Sie die Errorlevel in der Batch-Datei vom höchsten zum niedrigsten Wert auswerten. Treten also die Errorlevel-Werte 1, 3 und 5 auf, muss die Auswertung bei 5 beginnen:
if errorlevel 5 goto Fehler5
if errorlevel 3 goto Fehler3
if errorlevel 1 goto Fehler1
rem Keine Fehler aufgetreten...
Wollen Sie in Batch-Dateien Kommentare einfügen, setzen Sie an den Anfang der Zeile den Code Rem. Alles rechts davon wird dann nicht bearbeitet und kann so das Batch-Programm dokumentieren: rem Dies ist eine Kommentarzeile
Die hier vorgestellten Fähigkeiten der Batch-Programmierung sind nur ein erster Schritt. Sie betreten so einen hilfreichen Bereich, um viel Zeit bei der Arbeit am PC zu sparen. Folgende Beiträge in lockerer Folge werden vorstellen, welche Leistung in diesem Gebiet schlummert, die Sie für sich nutzen.
Die Beispiele von der Heft-DVD kopieren Sie am besten in ein leeres Verzeichnis und starten sie dort. Weil nämlich einige der Programme Testdaten anlegen, arbeiten diese nicht korrekt, wenn sie direkt von der Heft-DVD aufgerufen werden.