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.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow