Zweck:Wählen Sie Befehle zur Ausführung in einer Batchdatei basierend auf einem Wert aus

 

Format:SWITCH Ausdruck

CASE value1 [.ODER. value2 [.ODER. value3 ...]]

[Befehle]

CASE value4

[Befehle]

CASEALL

[Befehle]

[STANDARD

Befehle]

ENDSCHALTER

 

AusdruckEine Umgebungsvariable, eine interne Variable, eine Variablenfunktion, eine Textzeichenfolge oder eine Kombination dieser Elemente, die zur Auswahl einer Gruppe von Befehlen verwendet wird.
Wert1, Wert2Ein zu testender Wert oder mehrere damit verbundene Werte .ODER.
BefehleEin oder mehrere Befehle, die ausgeführt werden sollen, wenn der Ausdruck mit dem Wert übereinstimmt. Wenn Sie mehrere Befehle verwenden, müssen diese durch Befehlstrennzeichen getrennt oder in separaten Zeilen einer Batchdatei platziert werden.

 

Siehe auch: IF und IFF.

 

Verwendung:

 

SWITCH kann nur in Batchdateien verwendet werden. Sie können einen Befehl oder eine Gruppe von Befehlen zur Ausführung auswählen, basierend auf den möglichen Werten einer Variablen oder einer Kombination aus Variablen und Text.

 

Auf den SWITCH-Befehl folgt immer ein Ausdruck erstellt aus Umgebungsvariablen, internen Variablen, Variablenfunktionen und Textzeichenfolgen und dann durch eine Folge von CASE-Anweisungen, die dem Möglichen entsprechen Werte of Ausdruck, ein optionaler Standardwert Anweisung und beendet durch eine ENDSWITCH-Anweisung. Auf jede CASE-Anweisung und die DEFAULT-Anweisung können eine oder mehrere folgen Befehle.

 

TCC-RT wertet aus Ausdruck und sequentiell vergleicht es mit der Liste von Werte in den CASE-Anweisungen, beginnend mit der ersten. Die Vergleichsregeln sind die gleichen, die auch für verwendet werden EQ relationaler Operator; sehen Numerische und String-Vergleiche für Details. Wenn eine Übereinstimmung gefunden wird, wird die Befehle Die auf die übereinstimmende CASE-Anweisung folgenden Befehle werden ausgeführt, und die Batchdatei fährt mit den Befehlen fort, die auf ENDSWITCH folgen. Wenn es in nachfolgenden CASE-Anweisungen Übereinstimmungen gibt, werden diese ignoriert. Der Wert in einer CASE-Anweisung können Literale oder Variablen oder Funktionen sein (die vor dem Vergleich mit dem SWITCH-Ausdruck erweitert werden).

 

CASE-Anweisungen können Platzhalter und reguläre Ausdrücke enthalten.

 

Die optionale CASEALL-Anweisung sollte allen CASE-Anweisungen folgen, aber vor DEFAULT stehen. Wenn ein vorhergehender CASE-Block ausgeführt wurde, wird auch CASEALL ausgeführt. andernfalls wird es ignoriert.

 

Wenn bei der Suche nach einer Übereinstimmung die DEFAULT-Anweisung gefunden wird, wird die Befehle, sofern vorhanden, werden darauffolgende Befehle ausgeführt und die Batchdatei fährt mit den Befehlen fort, die auf ENDSWITCH folgen. Alle CASE-Anweisungen nach der DEFAULT-Anweisung werden ignoriert.

 

SWITCH-Befehle können verschachtelt werden.

 

Sie können die gesamte SWITCH-/ENDSWITCH-Verarbeitung beenden, indem Sie verwenden GOTO bis zu einer Zeile nach dem letzten ENDSWITCH.

 

Beschränkungen

 

Jede SWITCH-, CASE-, DEFAULT- und ENDSWITCH-Anweisung muss in einer separaten Zeile stehen und darf nicht von einem Befehlstrennzeichen gefolgt werden. (Aus diesem Grund kann SWITCH nicht in Aliasnamen verwendet werden.) Es gibt keine Einschränkung hinsichtlich der Gruppierung und der Verwendung von Befehlstrennzeichen im Befehle für einen CASE oder DEFAULT.

 

Sie können eine Werteliste in einer einzelnen CASE-Anweisung mit .OR. verknüpfen, nicht jedoch mit .AND. oder .XOR..

 

Beispiele:

 

Das Batchdateifragment unten zeigt eine Meldung an, wenn der Benutzer drückt A, eine andere, wenn der Benutzer drückt B or Cund eine dritte, wenn der Benutzer eine andere Taste drückt:

 

inkey Geben Sie einen Tastendruck ein: %%key

Schalter %key

Fall A

  echo Es ist eine Eins

Fall B .oder. C

  echo Es ist entweder B oder C

Standard

  echo Es ist nichts von A, B oder C

Endschalter

 

Im obigen Beispiel wurde der Wert einer einzelnen Umgebungsvariablen verwendet Ausdruck. Bei Bedarf können Sie jedoch auch andere Arten von Ausdrücken verwenden. Die erste SWITCH-Anweisung unten wählt einen auszuführenden Befehl basierend auf der Länge einer Variablen aus, und die zweite basiert die Aktion auf einer in Anführungszeichen gesetzten Textzeichenfolge, die in einer Umgebungsvariablen gespeichert ist:

 

Schalter %@len[%var1]

Fall 0

  echo Fehlende var1

Fall 1

  echo Einzelnes Zeichen

...

Endschalter

 

 

Schalter „%string1“

Fall „Das ist ein Test“

  echo Testzeichenfolge

Koffer „Der schnelle Braunfuchs“

  echo Es ist der Fuchs

...

Endschalter