Sök…


Syntax

  • om [/ i] StringToCompare1 == StringToCompare2 (kommandoA) annat (kommandoB)

  • om felnivå 1 (kommandoA) annars (kommandoB)

  • om% errorlevel% == 1 (kommandoA) annat (kommandoB)

  • om finns filnamn (kommandoA) annat (kommandoB)

  • om definierad variabelnamn (kommandoA) annars (kommandoB)

Anmärkningar

Det finns några syntax att välja mellan i ett if uttalande. Vi kommer att använda if string1==string2 som exempel.

1-raders syntaxer

  • 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

Multiline Syntaxes

if string1==string2 (
    commandA
)

Eller

if string1==string2 (
    commandA
) else (
    commandB
)

Det finns fortfarande några extra syntaxer tillgängliga.

Jämför siffror med IF-uttalande

SET TEST=0

IF %TEST% == 0 (
    echo TEST FAILED
) ELSE IF %TEST% == 1 (
    echo TEST PASSED
) ELSE (
    echo TEST INVALID
)

Jämför strängar

IF "%~1" == "-help" (
    ECHO "Hello"
)

där %1 hänvisar till det första kommandoradsargumentet och ~ tar bort alla citat som inkluderades när skriptet kallades.

Jämför felnivå

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
)

eller

If "%Errorlevel%"=="1" (
    Echo Errorlevel is 1
)

Skriptet ovan skulle kontrollera variabeln Errorlevel (inbyggd). Det not Operatören kan användas.

Set "Test=%Errorlevel%"

If "%Test%" == "1" (
    Echo Errorlevel is 1
)

Den här fungerar också.

Observera att vissa kommandon inte påverkar felnivån :

  • Ha sönder
  • Eko
  • ENDLOCAL
  • För
  • Om
  • Paus
  • Rem
  • Rd / Rmdir
  • Uppsättning
  • Titel

Följande kommandon ställer in men rensar inte felnivån :

  • Cls
  • Gå till
  • Keys
  • popD
  • Flytta

Följande kommandon anger utgångskoder men inte felnivån :

  • Rd / Rmdir

Följande kommandon ställer in felnivå men inte utgångskoder :

  • Md / Mkdir

Kontrollera om filen finns

If exist "C:\Foo\Bar.baz" (
    Echo File exist
)

Detta kontrollerar om filen C: \ Foo \ Bar.baz förekommer. Om detta finns det ekon fil existerar Not Operatören kan också tillsättas.

Om variabel finns / ställs in

If Defined Foo (
    Echo Foo is defined
)

Detta skulle kontrollera om en variabel är definierad eller inte. Återigen kan Not operatören användas.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow