Kommandoen: "IF" er på Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. tilgjengelig
Eksemplene for kommandoen "IF"
De
`IF`kommando i Windows Ledetekst brukes til å utføre betingede setninger i batch-skript. Her er noen eksempler:
Eksempel 1: Enkel likestillingssjekk:
@ECHO OFF
SET Variable1=10
SET Variable2=10
IF %Variable1% EQU %Variable2% (
ECHO Variablene er de samme.
) ELSE (
ECHO Variablene er ikke like.
)
Beskrivelse: I dette eksemplet er variablene
`Variable1`og
`Variable2`sammenlignet. Hvis de er like, vises meldingen
"Variablene er like." output, ellers
"Variablene er ikke like."
Eksempel 2: Se etter fileksistens:
@ECHO OFF
IF EXIST C:\Eksempel.txt (
ECHO Filen eksisterer.
) ELSE (
ECHO Filen finnes ikke.
)
Beskrivelse: Dette sjekker om filen
"Example.txt" finnes i C:\-katalogen. Hvis filen eksisterer, sendes den tilsvarende meldingen ut, ellers den andre.
Eksempel 3: Se etter brukerinndata:
@ECHO OFF
SET /P user_input=Vennligst angi en verdi:
IF "%user_input%"=="" (
ECHO Du har ikke angitt en verdi.
) ELSE (
ECHO De har "%user_input%" inn.
)
Beskrivelse: Dette sjekker om brukeren har angitt en verdi. Hvis ingen inntasting er gjort, vises meldingen
"Du har ikke angitt en verdi." utgang, ellers vises den angitte tegnstrengen.
Eksempel 4: Sjekke filstørrelsen:
@ECHO OFF
SET fil=C:\Eksempel.txt
SET Minimum_størrelse=1024
FOR %%A IN (%fil%) DO SET filstørrelse=%%~zA
IF %filstørrelse% GEQ %Minimum_størrelse% (
ECHO Filen oppfyller minimumsstørrelsen.
) ELSE (
ECHO Filen er for liten.
)
Beskrivelse: Størrelsen på
"Example.txt"-filen er sjekket her. Hvis filstørrelsen er større enn eller lik minimumsstørrelsen (
`Minimum_størrelse`), meldingen
"Filen oppfyller minimumsstørrelsen." output, ellers
"Filen er for liten."
Eksempel 5: Sjekke operativsystemet:
@ECHO OFF
VER | FIND "Windows 10" > NUL
IF %ERRORLEVEL% EQU 0 (
ECHO du bruker Windows 10.
) ELSE (
ECHO Du bruker et annet operativsystem.
)
Beskrivelse: Dette sjekker om operativsystemet er Windows 10. Hvis ja, meldingen
"Du bruker Windows 10." ellers
"bruker du et annet operativsystem."
De
`IF`statement gjør det mulig å sjekke ulike forhold i batch-skript og iverksette passende tiltak basert på resultatene.
"IF" Utdrag fra Microsoft Windows Hjelp
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\Windows>
Utfører betinget behandling i satsvise programmer.
IF [NOT] ERRORLEVEL nummer kommando
IF [NOT] streng1==streng2 kommando
IF [NOT] EXIST filnavn kommando
NOT Angir at Windows bare skal utføre kommandoen
hvis
vilkåret ikke er oppfylt.
ERRORLEVEL nummer Angir et oppfylt vilkår hvis siste program
returnerte
en sluttkode større enn eller lik det
angitte nummeret.
streng1==streng2 Angir et oppfylt vilkår hvis de angitte
tekststrengene
er like.
EXIST filnavn Angir et oppfylt vilkår hvis det angitte
filnavnet
finnes.
kommando Angir hvilken kommando som skal utføres hvis
vilkåret
oppfylles. Hvis kommandoen etterfølges av
"ELSE kommando",
vil kommandoen etter ELSE-nøkkelordet
utføres når det
angitte vilkåret ikke er oppfylt.
ELSE-setningen må forekomme på samme linje som kommandoen etter
IF.
Eksempel:
IF EXIST filnavn. (
del filnavn.
) ELSE (
echo filnavn. mangler.
)
Følgende vil IKKE virke fordi DEL-kommandoen må avsluttes med
linjeskift:
IF EXIST filenavn. del filnavn. ELSE echo filnavn. mangler
Følgende vil heller ikke virke, fordi ELSE-kommandoen må være på
den samme
linjen som slutten av IF-kommandoen:
IF EXIST filnavn. del filnavn.
ELSE echo filnavn. mangler
Følgende virker hvis du vil ha alt på en linje:
IF EXIST filnavn. (del filnavn.) ELSE echo filnavn. mangler
Hvis kommandoutvidelser er aktivert, får IF følgende endringer:
IF [/I] streng1 sammenligningsoperator streng2 kommando
IF CMDEXTVERSION nummer kommando
IF DEFINED variabel kommando
hvor sammenligningsoperator kan være en av:
EQU - lik (equal)
NEQ - ikke lik (not equal)
LSS - mindre enn (less than)
LEQ - mindre enn eller lik (less than or equal)
GTR - større enn (greater than)
GEQ - større enn eller lik (greater than or equal)
Hvis bryteren /I angis, sammenlignes strengene uten skille mellom
store
og små bokstaver. Bryteren /I kan også brukes på IF-formen
streng1==streng2.
Disse sammenligningene er generiske, fordi hvis både streng1 og
streng2
begge er bygget opp bare av sifre, blir strengene konvertert til
tall, og
det utføres en numerisk sammenligning.
Den betingelsesbaserte CMDEXTVERSION virker akkurat som
ERRORLEVEL, med
det unntak at den sammenligner mot et internt versjonsnummer som
er til-
knyttet kommandoutvidelser. Den første versjonen er 1. Den vil
bli økt med
en når det gjøres større forbedringer av kommandoutvidelser.
CMDEXTVERSION
er aldri sann når kommandoutvidelser er deaktivert.
Den betingelsesbaserte DEFINED virker akkurat som EXISTS, med det
unntak
at den tar et miljøvariabelnavn og returnerer sann hvis
miljøvariabelen
er definert.
%ERRORLEVEL% utvides til en stringrepresentasjon av gjeldende
verdi
for ERRORLEVEL, forutsatt at det ikke allerede finnes en
miljøvariabel
men navnet ERRORLEVEL. I så tilfelle får du den verdien i stedet.
Følgende illustrerer bruk av ERRORLEVEL etter kjøring av et
program:
goto answer%ERRORLEVEL%
:answer0
echo Programmet har returnert kode 0
:answer1
echo Programmet har returnert kode 1
Du kan også bruke de numeriske sammenligningene ovenfor:
IF %ERRORLEVEL% LEQ 1 goto okay
%CMDCMDLINE% utvides til den originale kommandolinjen som ble
sendt til
Cmd.exe før prosessering av Cmd.exe, forutsatt at det ikke
allerede finnes
en miljøvariabel med navnet CMDCMDLINE. I så tilfelle får du den
verdien i
stedet.
%CMDEXTVERSION% utvider til en strengrepresentasjon av gjeldende
verdi
av CMDEXTVERSION, forutsatt at det ikke allerede finnes en
miljøvariabel
med navnet CMDEXTVERSION. I så tilfelle får du den verdien i
stedet.
Viktig informasjon, tips for "IF"-kommandoen
Når du bruker
`IF`uttalelse i Windows-ledeteksten, er det noen viktige punkter å merke seg:
1.
Betingelsessyntaks: Syntaksen til
`IF`-Uttalelse krever korrekt formulering av vilkåret. Sammenligningsoperatøren (
`EQU`,
`NEQ`,
`LSS`,
`LEQ`,
`GTR`,
`GEQ`) må være mellom verdiene som skal sammenlignes. Legg merke til mellomrommene i syntaksen for å unngå uventede feil.
2.
Bruk av anførselstegn: Ved validering av strenger er det viktig å bruke anførselstegn for å sikre at tilstanden blir evaluert riktig. Eksempel:
`IF "%Variable%"=="Verdi" ...`
3.
Variabler: Hvis du bruker variabler i betingelsen, sørg for at de stemmer overens
`%`er vedlagt, som i
`%Variable%`. Dette sikrer at verdien av variabelen settes inn riktig i betingelsen.
4.
ELSE-uttalelse: The
`ELSE`setningen må stå på samme linje som den avsluttende parentesen til
`IF`stå eller begynne på en ny linje. Eksempel:
IF Betingelse (
Echo Tilstanden er sann.
) ELSE (
Echo Tilstanden er falsk.
)
5.
Merk`%ERRORLEVEL%`etter en kommando: Hvis du har
`IF`kommando etter en annen kommando, kan du
`%ERRORLEVEL%`for å sjekke suksessen eller feilen til denne kommandoen. Eksempel:
DIR C:\Ikke_eksisterende_katalog
IF %ERRORLEVEL% NEQ 0 (
Echo Feil under kjøring DIR-kommando.
)
6.
Numeriske sammenligninger: For numeriske sammenligninger bør du
`EQU`,
`NEQ`,
`LSS`,
`LEQ`,
`GTR`,
`GEQ`for å sikre at sammenligningene gjøres riktig.
7.
Logiske operatorer: Du kan bruke logiske operatorer som
`AND`(
`&&`) og
`OR`(
`||`) for å skape komplekse forhold. Eksempel:
IF Exist fil.txt IF %Variable% EQU Verdi (
Echo Begge forholdene er sanne.
)
8.
Kombinasjon med andre kommandoer: Du kan gjøre dette
`IF`-Kombiner utsagn med andre kommandoer for å utføre forskjellige handlinger basert på forhold.
9.
Whitespace: Vær forsiktig så du ikke bruker unødvendig mellomrom i forholdene eller kommandoene dine, da dette kan føre til uventet oppførsel.
Det er viktig å forstå syntaksen til
`IF`-Forstå instruksen nøye og sørg for at betingelsene er riktig formulert for å oppnå ønsket atferd. Hvis du er usikker, kan du se offisiell Microsoft-dokumentasjon eller elektroniske ressurser.