Mit der Befehlsgruppierung können Sie eine Reihe von Befehlen logisch gruppieren, indem Sie sie in Klammern setzen.

 

Es gibt zwei Hauptverwendungszwecke für die Befehlsgruppierung. Eine besteht darin, mehrere Befehle an einem Ort auszuführen, an dem normalerweise nur ein einziger Befehl zulässig ist. Angenommen, Sie möchten zwei verschiedene ausführen REN Befehle in allen Unterverzeichnissen Ihrer Festplatte. Sie könnten es so machen:

 

global ren *.wx1 *.wxo

global ren *.tx1 *.txo

 

Aber mit der Befehlsgruppierung können Sie dasselbe in einem Befehl tun:

 

global (ren *.wx1 *.wxo & ren *.tx1 *.txo)

 

Die beiden REN In Klammern eingeschlossene Befehle erscheinen als GLOBAL als wären sie ein einzelner Befehl, sodass beide Befehle für jedes Verzeichnis ausgeführt werden, die Verzeichnisse jedoch nur einmal und nicht zweimal gescannt werden, was normalerweise Zeit spart.

 

Diese Art der Befehlsgruppierung ist am nützlichsten mit AUSSER, FÜR, GLOBAL und IF Befehle. Wenn Sie diesen Ansatz stapelweise verwenden In der Datei müssen Sie entweder alle Befehle der Gruppe in einer Zeile platzieren oder die öffnende Klammer am Ende einer Zeile platzieren und die Befehle in den nachfolgenden Zeilen platzieren. Die folgenden Beispiele 1 und 2 funktionieren ordnungsgemäß, aber Beispiel 3 wird nicht:

 

Beispiel 1 (richtig):

 

für %f in (1 2 3) (echo hallo %f & echo auf Wiedersehen %f)

 

Beispiel 2 (richtig):

 

für %f in (1 2 3) (

 echo hallo %f

 Echo auf Wiedersehen %f

)

 

Beispiel 3 (falsch):

 

für %f in (1 2 3) (echo hallo %f

 Echo auf Wiedersehen %f)

 

Wenn die obigen Beispiele im Befehl eingegeben werden Linie, TCC werde eine ausstellen Mehr? Eingabeaufforderung als Antwort auf jede Zeile, bis die Befehlsgruppe geschlossen wird (d. h. die letzte Klammer wird erkannt), wie unten beschrieben.

 

Die zweite häufige Verwendung der Befehlsgruppierung besteht darin, die Eingabe oder Ausgabe für mehrere Befehle umzuleiten, ohne sie wiederholt zu verwenden Umleitung Symbole. Betrachten Sie beispielsweise das folgende Batchdateifragment, das mithilfe der Umleitung einige Kopfzeilen (einschließlich des heutigen Datums) und Verzeichnisanzeigen in eine Ausgabedatei einfügt. Der erste ECHO Der Befehl erstellt die Datei mit >, und die anderen Befehle hängen mit >> an die Datei an:

 

echo Datendateien %_date > Dateiliste

dir *.dat >> Dateiliste

Echo. >> Dateiliste

echo Textdateien %_Datum >> Dateiliste

dir *.txt >> Dateiliste

 

Mithilfe der Befehlsgruppierung können diese Befehle viel einfacher geschrieben werden. Geben Sie dieses Beispiel in einer Zeile ein:

 

(echo Datendateien %_Datum & Verzeichnis *.dat & Echo `` & Echo Textdateien %_Datum & Verzeichnis *.txt) > Dateiliste

 

Die Umleitung, die außerhalb der Klammern erscheint, gilt für alle Befehle innerhalb der Klammern. Da die Umleitung nur einmal durchgeführt wird, werden die Befehle etwas schneller ausgeführt, als wenn jeder Befehl einzeln eingegeben würde. Der gleiche Ansatz kann für die Eingabe verwendet werden Umleitung und Rohrleitungen.

 

Sie können die Befehlsgruppierung auch in einer Batchdatei oder an der Eingabeaufforderung verwenden, um Befehle auf mehrere Zeilen aufzuteilen. Dieses letzte Beispiel ähnelt dem Umleitungsbeispiel oben, wird jedoch an der Eingabeaufforderung eingegeben. Beachten Sie das Mehr? Eingabeaufforderung nach jeder unvollständigen Zeile. Keiner der Befehle wird ausgeführt, bis die Befehlsgruppe mit der schließenden Klammer abgeschlossen ist. Dieses Beispiel tut es nicht müssen in einer Zeile eingegeben werden:

 

[C:\] (echo Datendateien %_date

Mehr? dir *.dat

Mehr? Echo.

Mehr? echo Textdateien %_date

Mehr? dir *.txt) > Dateiliste

[C:\]

 

Einschränkungen

 

Eine Gruppe von Befehlen in Klammern ähnelt einer langen Befehlszeile. Die Gesamtlänge der Gruppe ist nur durch Ihren verfügbaren RAM begrenzt.

 

Sie können nicht verwenden TEXT / ENDTEXT, oder GOTO or GOSUB Beschriftungen in einer Befehlsgruppe.

 

Jede Zeile, die Sie an der normalen Eingabeaufforderung oder der eingeben Mehr? Die Eingabeaufforderung und jeder einzelne Befehl innerhalb der Zeile müssen innerhalb des Üblichen liegen Beschränkung der Befehlszeilenlänge.