IF
Verarbeitet Ausdrücke mit Bedingungen in einem Batch-Programm.
IF [NOT] ERRORLEVEL Nummer Befehl
IF [NOT] Zeichenfolge1==Zeichenfolge2 Befehl
IF [NOT] EXIST Dateiname Befehl
NOT Der Befehl soll nur dann ausgeführt werden, wenn die
Bedingung nicht erfüllt ist.
ERRORLEVEL Nummer Ist erfüllt, wenn das zuletzt ausgeführte Programm einen
Code grösser oder gleich der Nummer zurückgibt.
Befehl Der auszuführende Befehl, falls die Bedingung erfüllt
ist.
Zeichenfolge1==Zeichenfolge2
Ist erfüllt, falls die Zeichenfolgen gleich sind.
EXIST Dateiname Ist erfüllt, wenn die angegebene Datei existiert.
Wenn die Befehlserweiterungen aktiviert sind, wird der IF-Befehl folgendermassen verändert:
IF [/I] Zeichenfolge1 Vergleichsoperator Zeichenfolge2 Befehl
IF CMDEXTVERSION Zahl Befehl
IF DEFINED Variable Befehl
Dabei kann der Vergleichsoperator einer der folgenden sein:
EQU - gleich
NEQ - nicht gleich
LSS - kleiner als
LEQ - kleiner als oder gleich
GTR - grösser als
GEQ - grösser als oder gleich
Die /I-Option wird angegeben, um die Gross-/Kleinschreibung beim Vergleich zu
ignorieren. Die /I-Option kann auch in der Form Zeichenfolge1==Zeichenfolge2
verwendet werden. Diese Vergleiche sind allgemein, das heisst, wenn beide
Zeichenfolgen nur aus Ziffern bestehen, werden die Zeichenfolgen in Zahlen
umgewandelt, und es wird ein numerischer Vergleich durchgeführt.
Die Bedingung CMDEXTVERSION arbeitet genau wie ERRORLEVEL, nur das
dabei mit einer internen Versionsnummer der Befehlserweiterungen verglichen
wird. Die erste Verisonsnummer ist 1. Diese wird um eins erhöht werden, wenn
bedeutende Verbesserungen an den Befehlserweiterungen gemacht werden.
Die Bedingung CMDEXTVERSION ist falsch, wenn die Befehlserweiterungen nicht
aktiviert sind.
Die Bedingung DEFINED arbeitet genau wie EXIST, bezieht sich aber auf
den Namen einer Umgebungsvariablen und ist wahr, wenn die Umgebungs-
variable definiert ist.
Der Ausdruck %ERRORLEVEL% wird zu einer Zeichendarstellung des
aktuellen Werts der Variablen ERRORLEVEL expandiert (vorausgesetzt, es gibt
nicht bereits eine Umgebungsvariable mit dem Namen ERRORLEVEL, deren
Wert man dann erhält). Damit kann man zum Beispiel folgendes tun:
choice
goto Antwort%ERRORLEVEL%
:Antwort1
echo J für Ja eingegeben
goto :EOF
:Antwort2
echo N für Nein eingegeben
oder mit Verwendung der Vergleichsoperatoren:
IF %ERRORLEVEL% LEQ 1 goto ok
Der Ausdruck %CMDCMDLINE% wird zu der originalen Befehlszeile expandiert,
die CMD.EXE vor irgendeiner Bearbeitung übergeben wird (vorausgesetzt es gibt
nicht bereits eine Umgebungsvariable mit dem Namen CMDCMDLINE, deren
Wert man dann erhält).
Stellt die Tastaturbelegung für ein bestimmtes Land ein.