Het commando: "IF" staat aan Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. beschikbaar
De voorbeelden voor het commando "IF"
De
`IF`opdracht in de Windows-opdrachtprompt wordt gebruikt om voorwaardelijke instructies in batchscripts uit te voeren. Hier zijn enkele voorbeelden:
Voorbeeld 1: Eenvoudige gelijkheidscontrole:
@ECHO OFF
SET Variable1=10
SET Variable2=10
IF %Variable1% EQU %Variable2% (
ECHO De variabelen zijn hetzelfde.
) ELSE (
ECHO De variabelen zijn niet gelijk.
)
Beschrijving: In dit voorbeeld de variabelen
`Variable1`En
`Variable2`vergeleken. Als ze gelijk zijn, verschijnt het bericht
"De variabelen zijn gelijk." uitvoer, anders
"De variabelen zijn niet gelijk."
Voorbeeld 2: Controleren of een bestand bestaat:
@ECHO OFF
IF EXIST C:\Voorbeeld.txt (
ECHO Het bestand bestaat.
) ELSE (
ECHO Het bestand bestaat niet.
)
Beschrijving: Hiermee wordt gecontroleerd of het bestand Example.txt bestaat in de map C:\. Als het bestand bestaat, wordt het bijbehorende bericht uitgevoerd, anders het andere.
Voorbeeld 3: Controleren op gebruikersinvoer:
@ECHO OFF
SET /P gebruikers invoer=Voer alstublieft een waarde in:
IF "%gebruikers invoer%"=="" (
ECHO U heeft geen waarde ingevoerd.
) ELSE (
ECHO Zij hebben "%gebruikers invoer%" ingevoerde.
)
Beschrijving: Hiermee wordt gecontroleerd of de gebruiker een waarde heeft ingevoerd. Als er geen invoer heeft plaatsgevonden, verschijnt de melding
"U heeft geen waarde ingevoerd." uitvoer, anders wordt de ingevoerde tekenreeks weergegeven.
Voorbeeld 4: Bestandsgrootte controleren:
@ECHO OFF
SET bestand=C:\Voorbeeld.txt
SET Minimale_grootte=1024
FOR %%A IN (%bestand%) DO SET bestandsgrootte=%%~zA
IF %bestandsgrootte% GEQ %Minimale_grootte% (
ECHO Het bestand voldoet aan de minimale grootte.
) ELSE (
ECHO Het bestand is te klein.
)
Beschrijving: De grootte van het bestand Example.txt wordt hier gecontroleerd. Als de bestandsgrootte groter is dan of gelijk is aan de minimumgrootte (
`Minimale_grootte`), het bericht
"Het bestand voldoet aan de minimale grootte." uitvoer, anders
"Het bestand is te klein."
Voorbeeld 5: Het besturingssysteem controleren:
@ECHO OFF
VER | FIND "Windows 10" > NUL
IF %ERRORLEVEL% EQU 0 (
ECHO je gebruikt Windows 10.
) ELSE (
ECHO U gebruikt een ander besturingssysteem.
)
Beschrijving: Hiermee wordt gecontroleerd of het besturingssysteem Windows 10 is. Als dit het geval is, wordt het bericht 'U gebruikt Windows 10' weergegeven. anders
"U gebruikt een ander besturingssysteem."
De
`IF`statement maakt het mogelijk om verschillende voorwaarden in batchscripts te controleren en op basis van de resultaten passende acties te ondernemen.
"IF" Fragment uit Microsoft Windows Help
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\Windows>
Conditionele verwerking in batchprogramma's uitvoeren.
IF [NOT] ERRORLEVEL nummer opdracht
IF [NOT] tekenreeks1==tekenreeks2 opdracht
IF [NOT] EXIST bestandsnaam opdracht
NOT Bepaalt of Windows de opdracht alleen moet
uitvoeren als de toestand onwaar is.
ERRORLEVEL nummer Bepaalt een ware toestand als de laatste
uitvoering van
het programma een exitcode heeft
geretourneerd die
gelijk is aan of groter dan het opgegeven
nummer.
tekenreeks1==tekenreeks2 Bepaalt een ware toestand als de
opgegeven
teksttekenreeksen overeenkomen.
EXIST bestandsnaam Bepaalt een ware toestand als de opgegeven
bestandsnaam
bestaat.
opdracht Bepaalt de opdracht die moet worden
uitgevoerd als
wordt voldaan aan de toestand. De opdracht
kan worden
gevolgd door de opdracht ELSE die de
opdracht na het
sleutelwoord ELSE zal uitvoeren als de
opgegeven
toestand ONWAAR is.
ELSE moet op dezelfde regel staan als de opdracht na de IF.
Bijvoorbeeld:
IF EXIST bestandsnaam. (
del bestandsnaam.
) ELSE (
echo bestandsnaam. ontbreekt.
)
Het volgende voorbeeld zal NIET werken omdat de opdracht Del moet
worden
afgesloten door een newline:
IF EXIST bestandsnaam. del bestandsnaam. ELSE echo
bestandsnaam. ontbreekt
Het volgende voorbeeld werkt ook niet omdat de opdracht ELSE op
dezelfde
regel moet staan als het einde van de opdracht IF:
IF EXIST bestandsnaam. del bestandsnaam. ELSE echo
bestandsnaam. ontbreekt
Het volgende voorbeeld werkt als u alles op een regel wilt
hebben:
IF EXIST bestandsnaam. (del bestandsnaam.) ELSE echo
bestandsnaam. ontbreekt
Als de opdrachtextensies zijn ingeschakeld, verandert IF als
volgt:
IF [/I] tekenreeks1 vergelijkingsoperator tekenreeks2
opdracht
IF CMDEXTVERSION getal opdracht
IF DEFINED variabele opdracht
waarbij de vergelijkingsoperator één van de volgende
mogelijkheden kan zijn:
EQL - is gelijk aan
NEQ - is niet gelijk aan
LSS - kleiner dan
LEQ - kleiner dan of gelijk aan
GTR - groter dan
GEQ - groter dan of gelijk aan
De schakeloptie /I, indien opgegeven, geeft aan dat het
vergelijken van
reeksen niet hoofdlettergevoelig is. De optie /I kan ook gebruikt
worden
voor IF met tekenreeks1==tekenreeks2. Deze vergelijkingen zijn
algemeen,
omdat als tekenreeks1 en tekenreeks2 bestaat uit numerieke
tekens, de
tekenreeksen geconverteerd worden naar getallen en er een
numerieke
vergelijking wordt uitgevoerd.
De voorwaarde CMDEXTVERSION werkt net als ERRORLEVEL, behalve dat
het
vergelijkt met een intern versienummer dat verbonden is met de
opdracht-
extensies. De eerste versie is 1 en wordt verhoogd met 1 als
belangrijke uitbreidingen worden toegevoegd aan de
opdrachtextensies.
De voorwaarde CMDEXTVERSION is nooit waar als de
opdrachtextensies
uitgeschakeld zijn.
De voorwaarde DEFINED werkt net als EXISTS behalve dat het de
naam van een omgevingsvariabele neemt en als waar retourneert als
de
omgevingsvariabele is opgegeven.
%ERRORLEVEL% zal uitbreiden in een tekenreeksweergave van de
huidige
waarde van ERRORLEVEL, maar dit gebeurt alleen als er nog geen
omgevingsvariabele ERRORLEVEL is. Als ERRORLEVEL reeds bestaat,
krijgt
u de waarde daarvan. Het volgende voorbeeld laat het gebruik van
ERRORLEVEL zien, nadat een programma is uitgevoerd:
goto answer%ERRORLEVEL%
:answer0
echo Programma heeft retourneercode 0
:answer1
echo Programma heeft retourneercode 1
U kunt ook de numerieke vergelijkingen hierboven gebruiken:
IF %ERRORLEVEL% LEQ 1 goto okay
%CMDCMDLINE% zal uitbreiden in de oorspronkelijke opdrachtregel
die
is doorgegeven aan CMD.EXE voordat verwerking door CMD.EXE is
gestart,
maar dit gebeurt alleen als er nog geen omgevingsvariabele
CMDCMDLINE
is. Als CMDCMDLINE reeds bestaat, krijgt u de waarde daarvan.
%CMDEXTVERSION% zal uitbreiden in een tekenreeksweergave van de
huidige
waarde van CMDEXTVERSION, maar dit gebeurt alleen als er nog geen
omgevingsvariabele CMDEXTVERSION is. Als CMDEXTVERSION reeds
bestaat,
krijgt u de waarde daarvan.
Belangrijke informatie, tips voor het "IF" commando
Bij gebruik van de
`IF`instructie in de Windows-opdrachtprompt, zijn er enkele belangrijke punten waar u rekening mee moet houden:
1.
Voorwaardesyntaxis: De syntaxis van de
`IF`-Voor de verklaring is de juiste formulering van de voorwaarde vereist. De vergelijkingsoperator (
`EQU`,
`NEQ`,
`LSS`,
`LEQ`,
`GTR`,
`GEQ`) moet tussen de te vergelijken waarden liggen. Let op de spaties in de syntaxis om onverwachte fouten te voorkomen.
2.
Gebruik van aanhalingstekens: Bij het valideren van tekenreeksen is het belangrijk om aanhalingstekens te gebruiken om ervoor te zorgen dat de voorwaarde correct wordt geëvalueerd. Voorbeeld:
`IF "%Variable%"=="Waarde" ...`
3.
Variabelen: Als u variabelen in de voorwaarde gebruikt, zorg er dan voor dat ze correct overeenkomen
`%`zijn ingesloten, zoals in
`%Variable%`. Dit zorgt ervoor dat de waarde van de variabele correct in de voorwaarde wordt ingevoegd.
4.
ELSE verklaring: The
`ELSE`statement moet op dezelfde regel staan als het haakje sluiten van
`IF`op een nieuwe regel gaan staan of beginnen. Voorbeeld:
IF Voorwaarde (
Echo Conditie is waar.
) ELSE (
Echo Conditie is onwaar.
)
5.
Opmerking`%ERRORLEVEL%`na een commando: Als je de
`IF`commando na een ander commando, dat kan
`%ERRORLEVEL%`om het succes of falen van deze opdracht te controleren. Voorbeeld:
DIR C:\Niet-bestaande_map
IF %ERRORLEVEL% NEQ 0 (
Echo Fout bij uitvoeren DIR-commando.
)
6.
Numerieke vergelijkingen: Voor numerieke vergelijkingen moet u dat doen
`EQU`,
`NEQ`,
`LSS`,
`LEQ`,
`GTR`,
`GEQ`om ervoor te zorgen dat de vergelijkingen correct worden gemaakt.
7.
Logische operators: U kunt logische operators gebruiken, zoals
`AND`(
`&&`) En
`OR`(
`||`) om complexe omstandigheden te creëren. Voorbeeld:
IF Exist bestand.txt IF %Variable% EQU Waarde (
Echo Beide voorwaarden zijn waar.
)
8.
Combinatie met andere commando's: Je kunt dit doen
`IF`-Combineer instructies met andere opdrachten om verschillende acties uit te voeren op basis van voorwaarden.
9.
Witruimte: Zorg ervoor dat u geen onnodige witruimte gebruikt in uw voorwaarden of opdrachten, omdat dit tot onverwacht gedrag kan leiden.
Het is belangrijk om de syntaxis van de
`IF`-Begrijp de instructie zorgvuldig en zorg ervoor dat de voorwaarden correct zijn geformuleerd om het gewenste gedrag te bereiken. Als u het niet zeker weet, kunt u de officiële Microsoft-documentatie of online bronnen raadplegen.