| Zweck: | Ausführen eines einzelnen Befehls, wenn eine Bedingung erfüllt ist |
| Format: | IF [/I] condition command |
IF [/I] condition (command1) ELSE (command2)
condition |
|
command |
Der Befehl, der ausgeführt werden soll, wenn dieBedingung TRUE ist. |
Befehl1 |
Der Befehl,der ausgeführt werden soll, wenn dieBedingung WAHR ist. |
Befehl2 |
Der Befehl, der ausgeführt werden soll,wenn dieBedingung FALSCH ist. |
Siehe auch: Bedingte Ausdrücke, IFF, @IF.
Verwendung:
IF wird normalerweise nur in Aliasen und Batch-Dateien verwendet. Es folgt immer eine Bedingung (siehe Bedingte Ausdrücke) und dann ein Befehl. Die erste Bedingung wird ausgewertet, und wenn sie TRUE ist, wird derBefehl ausgeführt. Andernfalls wird derBefehl ignoriert.
Wenn die Bedingung FALSCH ist, gibtIF ein Ergebnis ungleich Null zurück, so dass es von einem der bedingten Befehlsoperatoren (II oder &&) ausgewertet werden kann.
Verwenden Sie IF nicht mit mehrzeiligen TCC Befehlen wie DO (es sei denn, Sie verwenden die einzeilige Variante von DO).
Die IF ... ELSE ... Syntax von CMD wird ebenfalls unterstützt:
IF [/I] condition (command1) ELSE (command2)
Die auszuführenden Befehle müssen in Klammern gesetzt werden (wie in einer Befehlsgruppe). Wenn die Bedingung TRUE ist, wirdBefehl1 ausgeführt, wenn FALSE, wird Befehl2 ausgeführt. Hinweis: Diese Syntax ist weit weniger mächtig als der BefehlIFF, der empfohlen wird.
Wenn das letzte Argument in der Zeile ein einzelnes ( ist , wird es als Beginn einer Befehlsgruppe interpretiert. IF hängt die folgenden Zeilen an (in einer Batch-Datei) oder fordert Sie zu weiteren Eingaben auf (in der Befehlszeile), bis es ein abschließendes) erhält .
Wenn ein IF-Test fehlschlägt, wird der Rest des Befehls verworfen. Ob TCC mit dem nächsten Befehl in der Zeile fortfährt oder den Rest der Zeile verwirft und zur nächsten Zeile übergeht, hängt von der Konfigurationsoption Duplicate CMD Bugs ab. CMD verwirft alle verbleibenden Befehle in der Zeile, wenn ein IF-Test fehlschlägt, einschließlich der Befehle nach einem Befehlsseparator oder einem Pipe-Zeichen. Wenn Sie das Verhalten von CMD.EXE, dass ein IF alle Befehle in einer Zeile betrifft, nicht reproduzieren wollen, setzen Sie DuplicateBugs in der .INI-Datei auf No. Das IF-Verhalten ist anders, wenn DuplicateBugs in einer Befehlsgruppe in einer Batch-Datei auf YES gesetzt ist. Wenn mehrere Befehlszeilen in der Befehlsgruppe vorhanden sind, werden bei einem fehlgeschlagenen IF nur die restlichen Befehle in dieser Zeile ignoriert. Die Befehle in den nachfolgenden Zeilen der Befehlsgruppe werden weiterhin ausgeführt.
Wenn z. B. Duplicate CMD Bugs aktiviert ist (Standardeinstellung), wird der folgende Befehl nichts anzeigen, da der zweite ECHO-Befehl zusammen mit dem ersten verworfen wird, wenn die Bedingung fehlschlägt. Wenn Duplicate CMD Bugs deaktiviert ist, wird"Hallo " angezeigt:
|
[c:\] if 1 == 2 echo Wrong! & echo hello |
Option: