Kommandot: "IF" är på Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. tillgänglig
Exemplen för kommandot "IF"
De
`IF`kommando i Windows Kommandotolk används för att köra villkorliga satser i batchskript. Här är några exempel:
Exempel 1: Enkel jämställdhetskontroll:
@ECHO OFF
SET Variable1=10
SET Variable2=10
IF %Variable1% EQU %Variable2% (
ECHO Variablerna är desamma.
) ELSE (
ECHO Variablerna är inte lika.
)
Beskrivning: I detta exempel är variablerna
`Variable1`och
`Variable2`jämfört. Om de är lika visas meddelandet
"Variablerna är lika." output, annars
"Variablerna är inte lika."
Exempel 2: Söker efter filexistens:
@ECHO OFF
IF EXIST C:\Exempel.txt (
ECHO Filen finns.
) ELSE (
ECHO Filen finns inte.
)
Beskrivning: Detta kontrollerar om filen
"Example.txt" finns i katalogen C:\. Om filen finns matas motsvarande meddelande ut, annars det andra.
Exempel 3: Söker efter användarinmatning:
@ECHO OFF
SET /P user_input=var god ange ett värde:
IF "%user_input%"=="" (
ECHO Du har inte angett något värde.
) ELSE (
ECHO De har "%user_input%" gick in i.
)
Beskrivning: Detta kontrollerar om användaren har angett ett värde. Om ingen inmatning har gjorts visas meddelandet
"Du har inte angett något värde." utdata, annars visas den angivna teckensträngen.
Exempel 4: Kontrollera filstorlek:
@ECHO OFF
SET fil=C:\Exempel.txt
SET Minsta_storlek=1024
FOR %%A IN (%fil%) DO SET filstorlek=%%~zA
IF %filstorlek% GEQ %Minsta_storlek% (
ECHO Filen uppfyller minimistorleken.
) ELSE (
ECHO Filen är för liten.
)
Beskrivning: Storleken på filen
"Example.txt" är markerad här. Om filstorleken är större än eller lika med minimistorleken (
`Minsta_storlek`), meddelandet
"Filen uppfyller minimistorleken." output, annars
"Filen är för liten."
Exempel 5: Kontrollera operativsystemet:
@ECHO OFF
VER | FIND "Windows 10" > NUL
IF %ERRORLEVEL% EQU 0 (
ECHO du använder Windows 10.
) ELSE (
ECHO Du använder ett annat operativsystem.
)
Beskrivning: Detta kontrollerar om operativsystemet är Windows 10. Om så är fallet, meddelandet
"Du använder Windows 10." annars
"använder du ett annat operativsystem."
De
`IF`statement gör det möjligt att kontrollera olika förhållanden i batchskript och vidta lämpliga åtgärder baserat på resultaten.
"IF" Utdrag från Microsoft Windows Hjälp
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\Windows>
Utför villkorsstyrd bearbetning i kommandofiler.
IF [NOT] ERRORLEVEL nummer kommando
IF [NOT] sträng1==sträng2 kommando
IF [NOT] EXIST filnamn kommando
NOT Anger att kommandon bara ska utföras om
villkoret
Är falskt.
ERRORLEVEL nummer Anger ett sant tillstånd om det sista
programmet som
Kördes returnerade en slutkod som är större
än
eller lika med det angivna numret.
string1==string2 Anger ett sant tillstånd om de angivna
textsträngarna
är identiska.
EXIST filnamn Anger ett sant tillstånd om det angivna
filnamnet
finns.
kommando Anger ett kommando som ska utföras om
villkoret uppfylls
Kommandon kan följas av kommandot ELSE som
kör
Kommandot efter nyckelordet ELSE om det
angivna
Villkoret är FALSE
Instruktionen ELSE måste anges på samma rad som kommandot efter
IF-satsen.
Till exempel:
IF EXIST filnamn. (
del filnamn.
) ELSE (
echo filnamn. saknas.
)
Följande syntax skulle INTE fungera eftersom kommandot DEL måste
avslutas
av en ny rad:
IF EXIST filnamn. del filnamn. ELSE echo filnamn. saknas
Följande syntax skulle inte heller fungera eftersom kommandot
ELSE måste
vara på samma rad som slutet av kommandot IF:
IF EXIST filnamn. del filnamn.
ELSE echo filnamn. saknas
Följande syntax fungerar om du vill skriva hela uttrycket på en
rad:
IF EXIST filnamn. (del filnamn.) ELSE echo filnamn. saknas
Om kommandotilläggen är aktiverade ändras kommandot IF enligt
följande:
IF [/I] sträng1 jämförelse-op sträng2 kommando
IF CMDEXTVERSION nummer kommando
IF DEFINED variabel kommando
Jämförelse-op kan vara något av följande värden:
EQU - lika med
NEQ - inte lika med
LSS - mindre än
LEQ - mindre än eller lika med
GTR - större än
GEQ - större än eller lika med
Växeln /I anger att strängjämförelserna inte ska vara
skiftlägeskänsliga
Växeln /I kan även användas med IF-formatet sträng1==sträng2.
Dessa jämförelser gäller allmänt. Om både sträng1 och sträng2
uteslutande består av numeriska tecken, konverteras strängarna
till tal och en numerisk jämförelse utförs.
Villkorsuttrycket CMDEXTVERSION fungerar precis som ERRORLEVEL,
förutom att
det jämför med ett internt versionsnummer för kommandotilläggen.
Den första
versionen är 1. Detta tal kommer att ökas med 1 när betydande
förändringar
görs i kommandotilläggen. Villkorsuttrycket CMDEXTVERSION är
aldrig sant när
kommandotilläggen är inaktiverade.
Villkorsuttrycket DEFINED fungerar precis som EXISTS, förutom att
det utgår
från ett miljövariabelnamn och returnerar värdet sant om
miljövariabeln är
definierad.
%ERRORLEVEL% expanderas till en sträng som innehåller det
aktuella värdet för ERRORLEVEL. Observera att om det redan finns
en
miljövariabel med namnet ERRORLEVEL får du den variabelns värde
i stället. Följande kod visar hur ERRORLEVEL kan användas
(efter att ett program körts):
goto svar%ERRORLEVEL%
:svar0
echo Programmet returnerade koden 0
:svar1
echo Programmet returnerade koden 1
Du kan även använda de numeriska jämförelserna ovan:
IF %ERRORLEVEL% LEQ 1 goto okay
%CMDCMDLINE% expanderas till den ursprungliga kommandoraden som
skickades till CMD.EXE innan CMD.EXE bearbetade den. Observera
att om det
redan finns en miljövariabel med namnet CMDCMDLINE får du den
variabelns
värde i stället.
%CMDEXTVERSION% expanderas till en sträng som innehåller det
aktuella för variabeln CMDEXTVERSION. Observera att om det redan
finns en
miljövariabel med namnet CMDEXTVERSION får du den variabelns
värde i stället.
Viktig information, tips för kommandot "IF"
När du använder
`IF`uttalande i Windows Command Prompt, finns det några viktiga punkter att notera:
1.
Konditionssyntax: Syntaxen för
`IF`-Utlåtande kräver korrekt formulering av villkoret. Jämförelseoperatorn (
`EQU`,
`NEQ`,
`LSS`,
`LEQ`,
`GTR`,
`GEQ`) måste ligga mellan värdena som ska jämföras. Notera mellanslagen i syntaxen för att undvika oväntade fel.
2.
Användning av citattecken: Vid validering av strängar är det viktigt att använda citattecken för att säkerställa att villkoret utvärderas korrekt. Exempel:
`IF "%Variable%"=="Värde" ...`
3.
Variabler: Om du använder variabler i villkoret, se till att de matchar korrekt
`%`är bifogade, som i
`%Variable%`. Detta säkerställer att variabelns värde infogas korrekt i villkoret.
4.
ELSE uttalande: The
`ELSE`uttalandet måste vara på samma rad som den avslutande parentesen för
`IF`stå eller börja på en ny linje. Exempel:
IF Skick (
Echo Tillståndet är sant.
) ELSE (
Echo Tillståndet är falskt.
)
5.
Obs`%ERRORLEVEL%`efter ett kommando: Om du har
`IF`kommando efter ett annat kommando, kan du
`%ERRORLEVEL%`för att kontrollera om detta kommando har lyckats eller misslyckats. Exempel:
DIR C:\Non_existent_directory
IF %ERRORLEVEL% NEQ 0 (
Echo Fel vid exekvering DIR-kommando.
)
6.
Numeriska jämförelser: För numeriska jämförelser bör du
`EQU`,
`NEQ`,
`LSS`,
`LEQ`,
`GTR`,
`GEQ`för att säkerställa att jämförelserna görs korrekt.
7.
Logiska operatorer: Du kan använda logiska operatorer som
`AND`(
`&&`) och
`OR`(
`||`) för att skapa komplexa förhållanden. Exempel:
IF Exist fil.txt IF %Variable% EQU Värde (
Echo Båda villkoren är sanna.
)
8.
Kombination med andra kommandon: Du kan göra detta
`IF`-Kombinera uttalanden med andra kommandon för att utföra olika åtgärder baserat på förhållanden.
9.
Whitespace: Var noga med att inte använda onödiga blanksteg i dina villkor eller kommandon, eftersom detta kan leda till oväntat beteende.
Det är viktigt att förstå syntaxen för
`IF`-Förstå instruktionen noggrant och se till att förutsättningarna är rätt formulerade för att uppnå önskat beteende. Om du är osäker kan du konsultera officiell Microsoft-dokumentation eller onlineresurser.