Führt einen Befehl für jede einzelne Datei für einen Satz von Dateien aus.

01-for-470.png?nocache=1312361761657

FOR %Variable IN (Satz) DO Befehl [Parameter]

  %Variable   Ein ersetzbarer Parameter bestehend aus einem einzelnen
              Buchstaben.
  (Satz)      Ein Satz von mindestens einer Datei. Platzhalter sind zulässig.
  Befehl      Befehl, der für jede Datei ausgeführt werden soll.
  Parameter   Parameter und Optionen für den angegebenen Befehl.

Um den FOR-Befehl in einem Batchprogramm zu verwenden, geben Sie %%Variable
statt %Variable an. Beachten Sie die Groß-/Kleinschreibung bei Variablen-
namen, %i und %I sind nicht identisch.

Wenn die Befehlserweiterungen aktiviert sind, werden folgende
Ergänzungen für den FOR-Befehl unterstützt:

FOR /D %Variable IN (Satz) DO Befehl [Parameter]

    Wenn der Satz Platzhalter enthält, dann bezieht sich der FOR-Befehl
    auf Verzeichnisse und nicht auf Dateien.

FOR /R [[Laufwerk:]Pfad] %Variable IN (Satz) DO Befehl [Parameter]

    Der FOR-Befehl wird ausgehend vom Verzeichnis [Laufwerk:]Pfad (als
    Stammverzeichnis) für jedes darunterliegende Verzeichnis ausgeführt.
    Wenn kein Verzeichnis nach der /R-Option angegeben ist, wird das aktuelle
    Verzeichnis verwendet. Wenn der Satz nur einen einzelnen Punkt als
    Zeichen (.) enthält, wird nur die Verzeichnisstruktur aufgelistet.

FOR /L %Variable IN (Start,Schritt,Ende) DO Befehl [Parameter]

    Der Satz ist eine Folge von Zahlen von Start bis Ende und der
    angegebenen Schrittweite. So erstellt (1,1,5) die Folge 1 2 3 4 5 und
    (5,-1,1) erstellt die Folge (5 4 3 2 1).

FOR /F ["Optionen"] %Variable IN (Dateiensatz) DO Befehl [Parameter]
FOR /F ["Optionen"] %Variable IN ("Zeichenfolge") DO Befehl [Parameter]
FOR /F ["Optionen"] %Variable IN (Befehl) DO Befehl [Parameter]

    oder, unter Verwendung der Option "usebackq":

FOR /F ["Optionen"] %variable IN (Dateiensatz) DO Befehl [Parameter]
FOR /F ["Optionen"] %variable IN ("Zeichenfolge") DO Befehl [Parameter]
FOR /F ["Optionen"] %variable IN (`Befehl`) DO Befehl [Parameter]

    Der Dateiensatz besteht aus einem oder mehreren Dateinamen. Jede Datei
    wird geöffnet, gelesen und bearbeitet, dann wird mit der nächsten Datei
    des Satzes fortgefahren. Die Bearbeitung einer Datei erfolgt zeilenweise,
    jede einzelne Textzeile wird ausgewertet und in die entsprechenden Token
    (keinen oder mehrere) zerlegt. Die Befehle in der FOR-Schleife werden dann
    mit den Variablenwerten (d.h. den gefunden Zeichenfolgen bzw. Token)
    aufgerufen. Standardmäßig liefert "/F" den ersten, durch ein Leerzeichen
    getrennten Token von jeder Zeile in jeder Datei. Leerzeilen werden
    übersprungen. Das standardmäßige Verhalten bei der Analyse kann wahlweise
    durch den Parameter "Optionen" überschrieben werden. Dies ist eine
    Zeichenfolge in Anführungszeichen, welche mindestens ein Schlüssel-
    wort enthält, um verschiedene Parameter für die Analyse anzugeben. Diese
    Schlüsselwörter sind:

        eol=c           – Gibt das Zeichen für Zeilenendekommentare an
                          (nur eins).
        skip=n          – Gibt die Anzahl der Zeilen an, die am Anfang einer
                          Datei übersprungen werden.
        delims=xxx      – Gibt einen Satz von Trennzeichen an. Diese ersetzen
                          die Standardtrennzeichen TAB und Leerzeichen.
        tokens=x,y,m-n  – Gibt an, welche Token von jeder Zeile an die
                          FOR-Schleife weitergegeben werden.
                          Das führt dazu, dass zusätzliche Variablen erstellt
                          werden. Mit der Form m-n wird dabei ein Bereich vom
                          m-ten bis zum  n-ten Token angegeben. Wenn das letzte
                          Zeichen ein Sternchen ist, wird eine zusätzliche
                          Variable deklariert, die den verbleibenden Text
                          dieser Zeile enthält.
        usebackq        – Gibt an, dass die neue Semantik in Kraft ist,
                          wobei eine Zeichenfolge in umgekehrten Anführungs-
                          zeichen als Befehl ausgeführt wird und eine
                          Zeichenfolge in Anführungszeichen ein literaler
                          Befehl ist, der die Verwendung von doppelten
                          Anführungszeichen um Dateinamen in Dateien-
                          sätzen erlaubt.

    Einige Beispiele:

FOR /F "eol=; tokens=2,3* delims=, " %i in (Datei.txt) do @echo %i %j %k

    Dadurch wird jede Zeile in der Datei "Datei.txt" ausgewertet, Zeilen
    die mit einem Semikolon beginnen werden ignoriert, für den 2. und
    3. Token jeder Zeile werden die Befehle in der FOR-Schleife ausge-
    führt. Trennzeichen sind Kommas und/oder Leerzeichen. In der FOR-
    Schleife wird der Ausdruck "%i" verwendet, um den 2. Token zu
    erhalten, "%j" für den 3. Token und "%k", um alle übrigen Token
    zu erhalten. Dateinamen, die Leerzeichen enthalten, müssen Sie
    innerhalb doppelter Anführungszeichen angeben. Dazu müssen Sie
    die Option "usebackq" verwenden. Andernfalls werden doppelte
    Anführungszeichen zur Definition eines auszuwertenden Literals ver-
    wendet.

    Dabei ist "%i" explizit deklariert, während "%j" und "%k" implizit
    durch die Option "tokens=" deklariert werden. Sie können bis zu
    26 Token durch diese Option angeben, vorausgesetzt, es wird da-
    durch nicht versucht, eine Variable mit einem Buchstaben größer als
    "z" zu deklarieren. Bedachten Sie, dass FOR-Variablen aus nur
    einem Buchstaben bestehen, Groß-/Kleinschreibung beachtet wer-
    den muss, dass sie global sind und nicht mehr als insgesamt 52
    gleichzeitig aktiv sein dürfen.

    Sie können den Befehl "FOR /F" auch direkt mit einer Zeichenfolge
    verwenden, indem Sie die Zeichenfolge in doppelten Anführungszei-
    chen als Dateiensatz zwischen den Klammern angeben. Diese Zei-
    chenfolge wird dabei als einzelne Zeile einer Datei betrachtet und
    ausgewertet.

    Schließlich können Sie den Befehl "FOR /F" auch verwenden, um
    die Ausgabe eines Befehls auszuwerten. Dazu geben Sie eine Zei-
    chenfolge in einfachen Anführungszeichen als Dateiensatz zwischen
    den Klammern an. Diese  Zeichenfolge wird dabei als Befehlszeile
    betrachtet und von einer untergeordneten "CMD.EXE" ausgeführt.
    Die Ausgabe dieses Befehls wird dann wie eine normale Datei ausge-
    wertet. Das folgende Beispiel listet die Umgebungsvariablen im
    aktuellen Verzeichnis auf:

        FOR /F " usebackq delims==" %i IN (`set`) DO @echo %i

Zusätzlich wurde die Ersetzung von Verweisen auf FOR-Variablen erweitert.
Sie können jetzt folgende Syntax verwenden:

    %~I         – Expandiert %I und entfernt alle umschließenden
                   Anführungszeichen (").
    %~fI        – Expandiert %I zu einem vollständigen Dateinamen.
    %~dI        – erstellt nur den Laufwerkbuchstaben von %I.
    %~pI        – erstellt nur den Pfad von %I.
    %~nI        – erstellt nur den Dateinamen von %I.
    %~xI        – erstellt nur die Dateierweiterung von %I.
    %~sI        – erstellter Pfad enthält nur kurze Dateinamen.
    %~aI        – erstellt die Dateiattribute von %I.
    %~tI        – erstellt Datum und Zeit von %I.
    %~zI        – erstellt die Dateigröße von %I.
    %~$PATH:I   – Durchsucht die in der PATH-Umgebungsvariablen
                   angegebenen Verzeichnisse und expandiert die erste
                   gefundene Datei %I zu dem vollständigen Dateinamen.
                   Wenn der Name der Umgebungsvariablen nicht definiert
                   ist oder diese Datei bei der Suche nicht gefunden wurde,
                   wird dieser Parameter zu einer leeren Zeichenfolge
                   expandiert.

Diese Parameter können auch miteinander kombiniert werden:

    %~dpI       – erstellt den Laufwerkbuchstaben und Pfad von %I.
    %~nxI       – erstellt den Dateinamen und die Dateierweiterung von %I.
    %~fsI       – Expandiert %I zu einem vollständigen Namen, der nur
                   kurze Dateinamen enthält.
    %~dp$PATH:I – Durchsucht die in der PATH-Umgebungsvariablen
                   angegebenen Verzeichnisse nach %I und erstellt den
                   Laufwerkbuchstaben und Pfad der ersten gefundenen Datei.
    %~ftzaI     – Expandiert %I zu einer Zeile, die der Ausgabe des DIR-
                   Befehls entspricht.

In den angegebenen Beispielen können %I und PATH durch andere gültige
Werte ersetzt werden. Der Ausdruck %~ wird durch einen gültigen Variablen-
namen für FOR abgeschlossen. Die Verwendung von Großbuchstaben für die Namen
von Variablen, wie z. B. %I, macht diese Ausdrücke leichter lesbar und
vermeidet Verwechslungen mit den eigentlichen Parametern.