batch-file
Als verklaringen
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.