MS-DOS- und Windows-Befehlszeile für Befehl

Inhaltsverzeichnis:

MS-DOS- und Windows-Befehlszeile für Befehl
MS-DOS- und Windows-Befehlszeile für Befehl

Video: MS-DOS löscht sich selbst - Die Sache mit dem FORMAT C: Befehl 2024, Kann

Video: MS-DOS löscht sich selbst - Die Sache mit dem FORMAT C: Befehl 2024, Kann
Anonim

Die FOR- Variable wird für Batchdateien verwendet, um einen bestimmten Befehl auszuführen, wenn ein Parameter erfüllt oder angegeben wird.

  • Verfügbarkeit
  • Für die Syntax
  • Zum Beispiel

Verfügbarkeit

For ist ein interner Befehl und steht in den folgenden Microsoft-Betriebssystemen zur Verfügung.

  • Alle Versionen von MS-DOS
  • Windows 95
  • Windows 98
  • Windows ME
  • Windows NT
  • Windows 2000
  • Windows XP
  • Windows Vista
  • Windows 7
  • Windows 8
  • Windows 10

Für die Syntax

  • Syntax für Windows 2000, XP und höher.
  • Windows 95, 98, ME-Syntax.

Syntax für Windows 2000, XP und höher

FOR% Variable IN (gesetzt) ​​DO-Befehl [Befehlsparameter]

%Variable Ein beliebiger Parameter.
(Dateigruppe) Gibt einen Satz von einer oder mehreren Dateien an. Platzhalter können verwendet werden.
Befehl Gibt den Befehl an, der für jede Datei ausgeführt werden soll.
Befehlsparameter Gibt Parameter oder Schalter für den angegebenen Befehl an.

Um den FOR-Befehl in einem Stapelverarbeitungsprogramm zu verwenden, geben Sie %% variable anstelle von% variable an. Bei Variablennamen wird zwischen Groß- und Kleinschreibung unterschieden, daher unterscheidet sich% i von% I.

Wenn Befehlserweiterungen aktiviert sind, werden die folgenden zusätzlichen Formen des FOR-Befehls unterstützt:

FOR / D% Variable IN (gesetzt) ​​DO-Befehl [Befehlsparameter]

Wenn set Platzhalter enthält, wird angegeben, dass mit Verzeichnisnamen anstelle von Dateinamen abgeglichen werden soll.

FOR / R [[Laufwerk:] Pfad]% Variable IN (gesetzt) ​​DO-Befehl [Befehlsparameter]

Durchläuft den Verzeichnispfad, der im Pfad [Laufwerk:] verwurzelt ist, und führt die FOR-Anweisung in jedem Verzeichnis des Baums aus. Wenn nach / R keine Verzeichnisspezifikation angegeben ist, wird das aktuelle Verzeichnis angenommen. Wenn set nur ein einzelnes Punktzeichen (.) Ist, wird der Verzeichnisbaum aufgelistet.

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

Der Satz ist eine Folge von Zahlen von Anfang bis Ende nach Schrittbetrag. Also würde (1,1,5) die Sequenz 1 2 3 4 5 erzeugen und (5, -1,1) würde die Sequenz (5 4 3 2 1) erzeugen.

FOR / F ["Optionen"]% Variable IN (Dateisatz) DO-Befehl [Befehlsparameter] FOR / F ["Optionen"]% Variable IN ("Zeichenfolge") DO-Befehl [Befehlsparameter] FOR / F ["Optionen"]% Variable IN ('Befehl') DO-Befehl [Befehlsparameter]

oder, falls die Option usebackq vorhanden ist:

FOR / F ["Optionen"]% Variable IN (Dateisatz) DO-Befehl [Befehlsparameter] FOR / F ["Optionen"]% Variable IN ('Zeichenfolge') DO-Befehl [Befehlsparameter] FOR / F ["Optionen"]% Variable IN (`Befehl`) DO-Befehl [Befehlsparameter]

Die Parameter-Dateigruppe besteht aus einem oder mehreren Dateinamen, die die Eingabequelle darstellen. Jede Datei im Dateinamensatz wird geöffnet, gelesen und verarbeitet, bevor mit der nächsten fortgefahren wird. Die Verarbeitung besteht darin, die Datei einzulesen, in einzelne Textzeilen aufzuteilen und dann jede Zeile in null oder mehr Token zu analysieren. Der Hauptteil der for-Schleife wird dann aufgerufen, wobei die Variablenwerte auf die gefundenen Token-Zeichenfolgen gesetzt werden. Standardmäßig übergibt / F das erste leere, getrennte Token aus jeder Zeile jeder Datei. Leerzeilen werden übersprungen. Sie können das Standard-Analyseverhalten überschreiben, indem Sie den optionalen Parameter "options" angeben. Eine Zeichenfolge in Anführungszeichen enthält ein oder mehrere Schlüsselwörter, um verschiedene Analyseoptionen anzugeben. Die Schlüsselwörter sind:

eol = c Gibt einen einzelnen Kommentar zum Zeilenende an.
überspringen = n Gibt die Anzahl der Zeilen an, die am Anfang der Datei übersprungen werden sollen.
delims = xxx Gibt einen Trennzeichensatz an, der den Standardtrennzeichensatz aus Leerzeichen und Tabulator ersetzt.
Token = x, y, mn Gibt an, welche Token aus jeder Zeile für jede Iteration an den for-Body übergeben werden sollen, wodurch zusätzliche Variablennamen zugewiesen werden. Die mn-Form ist ein Bereich, der die m-ten bis n-ten Token angibt. Wenn das letzte Zeichen in der Token = Zeichenfolge ein Sternchen ist, wird eine zusätzliche Variable zugewiesen und erhält den verbleibenden Zeilentext nach dem letzten analysierten Token.
usebackq Gibt an, dass eine neue Semantik in Kraft ist, bei der eine Zeichenfolge in Anführungszeichen als Befehl ausgeführt wird und eine Zeichenfolge in einfachen Anführungszeichen ein Literalzeichenfolgenbefehl ist. Mit dieser Option können auch doppelte Anführungszeichen verwendet werden, um Dateinamen in der Dateigruppe in Anführungszeichen zu setzen.

Einige Beispiele könnten helfen:

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

analysiert myfile.txt, ignoriert Zeilen, die mit einem Semikolon beginnen, und übergibt das 2. und 3. Token von jeder Zeile an den for-Body, wobei Token durch Kommas und Leerzeichen getrennt sind. Beachten Sie, dass die for body-Anweisungen auf% i verweisen, um das 2. Token zu erhalten,% j, um das 3. Token zu erhalten, und% k, um alle verbleibenden Token nach dem 3. zu erhalten. Bei Dateinamen, die Leerzeichen enthalten, müssen Sie die Dateinamen in doppelte Anführungszeichen setzen. Um doppelte Anführungszeichen auf diese Weise zu verwenden, müssen Sie die Option usebackq verwenden. Andernfalls werden die doppelten Anführungszeichen so interpretiert, dass sie eine zu analysierende Literalzeichenfolge definieren.

% i wird explizit in der for-Anweisung deklariert, und% j und% k werden implizit über die Option tokens = deklariert. Sie können bis zu 26 Token über die Zeile tokens = angeben, sofern nicht versucht wird, eine Variable zu deklarieren, die höher als der Buchstabe 'z' oder 'Z' ist. Denken Sie daran, dass bei FOR-Variablennamen zwischen Groß- und Kleinschreibung unterschieden wird und dass nicht mehr als 52 Namen gleichzeitig aktiv sein können.

Sie können die FOR / F-Parsing-Logik auch für eine beliebige Zeichenfolge verwenden. Geben Sie dazu die Dateigruppe als Zeichenfolge in Anführungszeichen in Klammern an. Es wird als einzelne Eingabezeile aus einer Datei analysiert.

Schließlich können Sie den Befehl FOR / F verwenden, um die Ausgabe eines Befehls zu analysieren. Sie tun dies, indem Sie die Dateigruppe zwischen den Klammern zu einer Zeichenfolge in Anführungszeichen setzen. Es wird als Befehlszeile behandelt, die an eine untergeordnete CMD.EXE übergeben wird, und ihre Ausgabe wird im Speicher erfasst und als Datei analysiert. Also folgendes Beispiel:

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

würde die Umgebungsvariablennamen in der aktuellen Umgebung auflisten.

Die Ersetzung der FOR-Variablenreferenzen wurde verbessert, und Sie können jetzt die folgende optionale Syntax verwenden:

% ~ I. Erweitert% I und entfernt alle umgebenden Anführungszeichen (").
% ~ fI Erweitert% I zu einem vollständig qualifizierten Pfadnamen.
% ~ dI Erweitert% I nur auf einen Laufwerksbuchstaben.
% ~ pI Erweitert% I nur zu einem Pfad.
% ~ nI Erweitert% I nur auf einen Dateinamen.
% ~ xI Erweitert% I nur zu einer Dateierweiterung.
% ~ sI Der erweiterte Pfad enthält nur Kurznamen.
% ~ aI Erweitert% I auf Dateiattribute der Datei.
% ~ tI Erweitert% I auf Datum / Uhrzeit der Datei.
% ~ zI Erweitert% I auf die Größe der Datei.
% ~ $ PATH: Ich Durchsucht die in der Umgebungsvariablen PATH aufgelisteten Verzeichnisse und erweitert% I auf den vollständig qualifizierten Namen des zuerst gefundenen. Wenn der Name der Umgebungsvariablen nicht definiert ist oder die Datei bei der Suche nicht gefunden wird, wird dieser Modifikator auf die leere Zeichenfolge erweitert.

Die Modifikatoren können kombiniert werden, um zusammengesetzte Ergebnisse zu erhalten:

% ~ dpI Erweitert% I nur auf einen Laufwerksbuchstaben und einen Pfad.
% ~ nxI Erweitert% I nur auf einen Dateinamen und eine Erweiterung.
% ~ fsI Erweitert% I zu einem vollständigen Pfadnamen mit nur Kurznamen.
% ~ dp $ PATH: i Durchsucht die in der Umgebungsvariablen PATH aufgelisteten Verzeichnisse nach% I und erweitert sie auf den Laufwerksbuchstaben und den Pfad des ersten gefundenen.
% ~ ftzaI Erweitert% I zu einer DIR-ähnlichen Ausgabezeile.

In den obigen Beispielen können% I und PATH durch andere gültige Werte ersetzt werden. Die% ~ -Syntax wird durch einen gültigen FOR-Variablennamen beendet. Wenn Sie Variablennamen in Großbuchstaben wie% I auswählen, wird die Lesbarkeit verbessert und es werden Verwechslungen mit den Modifikatoren vermieden, bei denen die Groß- und Kleinschreibung nicht berücksichtigt wird.

Windows 95, 98, ME-Syntax

FOR% Variable IN (gesetzt) ​​DO-Befehl [Befehlsparameter]

%Variable Gibt einen austauschbaren Parameter an.
(einstellen) Gibt einen Satz von einer oder mehreren Dateien an. Platzhalter können verwendet werden.
Befehl Gibt den Befehl an, der für jede Datei ausgeführt werden soll.
Befehlsparameter Gibt Parameter oder Schalter für den angegebenen Befehl an.

Um den FOR-Befehl in einem Stapelverarbeitungsprogramm zu verwenden, geben Sie %% variable anstelle von% variable an.