Zoeken…


Syntaxis

  • if [/ i] StringToCompare1 == StringToCompare2 (commandA) else (commandB)

  • if errorlevel 1 (commandA) else (commandB)

  • if% errorlevel% == 1 (commandA) else (commandB)

  • indien bestaan Bestandsnaam (commandA) anders (commandB)

  • indien gedefinieerd VariabeleNaam (commandA) else (commandB)

Opmerkingen

Er zijn een paar syntaxis om uit te kiezen in een if statement. We zullen if string1==string2 als voorbeeld gebruiken.

1-regelige syntaxis

  • 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

Meerlijnige syntaxis

if string1==string2 (
    commandA
)

Of

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

Er zijn nog enkele extra syntaxis beschikbaar.

Getallen vergelijken met IF-instructie

SET TEST=0

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

Tekenreeksen vergelijken

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

waarbij %1 verwijst naar het eerste opdrachtregelargument en ~ verwijdert alle aanhalingstekens die waren opgenomen toen het script werd aangeroepen.

Foutniveau vergelijken

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
)

of

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

Het bovenstaande script controleert de variabele Errorlevel (ingebouwd). De not operator kan worden gebruikt.

Set "Test=%Errorlevel%"

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

Deze werkt ook.

Houd er rekening mee dat sommige opdrachten het foutniveau niet beïnvloeden :

  • Breken
  • Echo
  • endlocal
  • Voor
  • Als
  • Pauze
  • Rem
  • Rd / Rmdir
  • reeks
  • Titel

De volgende opdrachten zijn ingesteld, maar het foutniveau is niet duidelijk :

  • Cls
  • Ga naar
  • Keys
  • popd
  • Verschuiving

De volgende opdrachten stellen exitcodes in, maar niet het foutniveau :

  • Rd / Rmdir

De volgende opdrachten stellen foutniveau in, maar niet de exitcodes :

  • Md / Mkdir

Controleer of het bestand bestaat

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

Dit controleert of het bestand C: \ Foo \ Bar.baz bestaat. Als dit bestaat, echos het Bestand bestaat De operator Not kan ook worden toegevoegd.

Als variabele bestaat / ingesteld

If Defined Foo (
    Echo Foo is defined
)

Dit zou controleren of een variabele is gedefinieerd of niet. Nogmaals, de operator Not kan worden gebruikt.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow