FOR

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

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

  %Variable  Ein ersetzbarer Parameter
  (Satz)     Eine 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 die angegebenen Befehle

Um den FOR-Befehl in einem Batch-Programm zu benutzen, geben Sie %%Variable
statt %Variable an. Beachten Sie die Gross-/Kleinschreibung bei Variablennamen,
%i und %I sind verschieden.

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
    root) 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
    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 erzeugt (1,1,5) die Folge 1 2 3 4 5 und
    (5,-1,1) erzeugt die Folge (5 4 3 2 1).

FOR /F ["Optionen"] %Variable IN (Dateien-Satz) DO Befehl [Parameter]

    Der Dateien-Satz besteht aus einem oder mehreren Dateinamen. Jede Datei
    wird geöffnet, gelesen und bearbeitet, dann wird zur nächsten Datei des
    Satzes gegangen. Die Bearbeitung einer Datei erfolgt zeilenweise, jede
    einzelne Textzeile wird analysiert und in die entsprechenden Token (keinen
    oder mehrere) zerlegt. Die Befehle in der FOR-Schleife werden dann mit den
    Variablenwerten (d.h. den gefunden Zeichenketten bzw. Token) aufgerufen.
    Standardmässig liefert /F den ersten, durch ein Leerzeichen getrennten Token
    von jeder Zeile in jeder Datei. Leerzeilen werden übersprungen. Das
    standardmässige Verhalten bei der Analyse kann wahlweise durch den Parameter
    "Optionen" überschrieben werden. Das ist eine Zeichenkette in Anführungs-
    zeichen, welche eines oder mehrere Schlüsselwörter enthält, um verschiedene
    Parameter für die Analyse anzugeben. Diese Schlüsselwörter sind:

        eol=c           - gibt das Zeichen für das Zeilenende 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, das ersetzt 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 erzeugt
                          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.

    Folgendes Beispiel soll das nochmals verdeutlichen:

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

    Dadurch wird jede Zeile in der Datei myfile.txt analysiert, Zeilen die mit
    einem Semikolon beginnen werden ignoriert, für den 2. und 3. Token jeder
    Zeile werden die Befehle in der FOR-Schleife ausgefü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.

    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 dadurch nicht versucht, eine
    Variable mit einem Buchstaben grösser als 'z' zu deklarieren. Bedenken Sie,
    dass FOR-Variablen global sind und nicht mehr als insgesamt 26 zu einem
    bestimmten Zeitpunkt aktiv sein dürfen.

    Sie können den Befehl FOR /F auch direkt mit einer Zeichenkette verwenden,
    indem Sie als Dateien-Satz zwischen den Klammern diese Zeichenkette in
    doppelten Anführungszeichen angeben. Diese Zeichenkette wird dabei als
    einzelne Zeile einer Datei betrachtet und analysiert.

    Schliesslich können Sie den Befehl FOR /F auch verwenden, um die Ausgabe
    eines Befehls zu analysieren. Dazu geben Sie als Dateien-Satz zwischen den
    Klammern eine Zeichenkette in einfachen Anführungszeichen an. Diese
    Zeichenkette wird dabei als Befehlszeile betrachtet und von einer unter-
    geordneten CMD.EXE ausgeführt. Die Ausgabe dieses Befehls wird dann wie
    eine normale Datei analysiert. Das folgende Beispiel listet die Umgebungs-
    variablen im aktuellen Verzeichnis auf:

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

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

    %~fi        - expandiert %i zu einem vollständigen Dateinamen
    %~di        - erzeugt nur den Laufwerksbuchstaben von %i
    %~pi        - erzeugt nur den Pfad von %i
    %~ni        - erzeugt nur den Dateinamen von %i
    %~xi        - erzeugt nur die Dateierweiterung von %i
    %~si        - erzeugter Pfad enthält nur kurze Dateinamen
    %~$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 Zeichenkette
                   expandiert.

Diese Parameter können auch miteinander kombiniert werden:

    %~dpi       - erzeugt den Laufwerksbuchstaben und Pfad von %i
    %~nxi       - erzeugt 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 erzeugt den
                   Laufwerkbuchstaben und Pfad der ersten gefundenen Datei.

In den angegebenen Beispielen können %i und PATH durch andere gültige
Werte ersetzt werden. Seien Sie sorgfältig bei der Wahl der Buchstaben für Ihre
FOR-Variablen, wenn Sie die erweiterte Logik für die Ersetzung von Variablen
verwenden wollen. Andernfalls kann es zu einer widersprüchlichen Befehls-
syntax kommen.



mobile.de - Ihr Fahrzeugmarkt im Internet    AutoScout24 - Europas großer Automarkt