batch-file
Wenn Aussagen
Suche…
Syntax
if [/ i] StringToCompare1 == StringToCompare2 (commandA) else (commandB)
Wenn Fehlerlevel 1 (commandA) else (commandB)
wenn% errorlevel% == 1 (commandA) else (commandB)
wenn vorhanden Dateiname (commandA) else (commandB)
wenn definiert Variablenname (commandA) else (commandB)
Bemerkungen
In einer if
Anweisung stehen einige Syntax zur Auswahl. Wir verwenden if string1==string2
als Beispiel.
Einzeilige Syntax
-
if string1==string2 commandA
-
if string1==string2 (commandA)
-
if string1==string2 (commandA) else (commandB)
-
if string1==string2 (commandA) else commandB
-
if string1==string2 (commandA)else (commandB)
-
if string1==string2 (commandA)else commandB
Mehrzeilige Syntax
if string1==string2 (
commandA
)
Oder
if string1==string2 (
commandA
) else (
commandB
)
Es sind noch einige zusätzliche Syntaxen verfügbar.
Zahlen mit der IF-Anweisung vergleichen
SET TEST=0
IF %TEST% == 0 (
echo TEST FAILED
) ELSE IF %TEST% == 1 (
echo TEST PASSED
) ELSE (
echo TEST INVALID
)
Zeichenfolgen vergleichen
IF "%~1" == "-help" (
ECHO "Hello"
)
Dabei bezieht sich %1
auf das erste Befehlszeilenargument und ~
entfernt alle Anführungszeichen, die beim Aufruf des Skripts enthalten waren.
Errorlevel vergleichen
If Errorlevel 1 (
Echo Errorlevel is 1 or higher
REM The phrase "1 or higher" is used because If Errorlevel 1 statement means:
REM If %Errorlevel% GEQ 1
REM Not If %Errorlevel% EQU 1
)
oder
If "%Errorlevel%"=="1" (
Echo Errorlevel is 1
)
Das obige Skript würde die Variable Errorlevel (eingebaut) prüfen. Der not
Operator kann verwendet werden.
Set "Test=%Errorlevel%"
If "%Test%" == "1" (
Echo Errorlevel is 1
)
Dieser funktioniert auch.
Bitte beachten Sie, dass einige Befehle den Errorlevel nicht beeinflussen :
- Brechen
- Echo
- Endlokal
- Zum
- Ob
- Pause
- Rem
- Rd / Rmdir
- einstellen
- Titel
Die folgenden Befehle setzen den Errorlevel, ohne ihn zu löschen :
- Cls
- Gehe zu
- Schlüssel
- Popd
- Verschiebung
Mit den folgenden Befehlen werden Exitcodes festgelegt, jedoch nicht der Fehlerebene :
- Rd / Rmdir
Die folgenden Befehle legen den Errorlevel fest, jedoch nicht die Exit-Codes :
- Md / Mkdir
Überprüfen Sie, ob die Datei vorhanden ist
If exist "C:\Foo\Bar.baz" (
Echo File exist
)
Dadurch wird geprüft, ob die Datei C: \ Foo \ Bar.baz vorhanden ist. Wenn dies vorhanden ist, ist die Datei vorhanden. Der Operator Not
kann ebenfalls hinzugefügt werden.
Wenn Variable existiert / gesetzt ist
If Defined Foo (
Echo Foo is defined
)
Dies würde prüfen, ob eine Variable definiert ist oder nicht. Wieder kann der Not
Operator verwendet werden.