Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Führt einen Befehl für jede einzelne Datei für einen Satz von Dateien aus.
- 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]
- 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.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement