MS-DOS och Windows kommandorad om kommando

Innehållsförteckning:

MS-DOS och Windows kommandorad om kommando
MS-DOS och Windows kommandorad om kommando

Video: How to Install Ulefone USB Driver on Windows | ADB and FastBoot | Tech Talks #42 2024, Maj

Video: How to Install Ulefone USB Driver on Windows | ADB and FastBoot | Tech Talks #42 2024, Maj
Anonim

Den om kommandot utför villkorlig behandling i kommandoprogram.

Tillgänglighet

If-kommandot är ett internt kommando som nås och används i batchfiler.

  • Windows 95
  • Windows 98
  • Windows NT
  • Windows XP
  • Windows 2000
  • Windows Vista
  • Windows 7
  • Windows 8
  • Windows 10

Syntax

  • Windows Vista och senare syntax.
  • Windows XP och tidigare syntax.

Windows Vista och senare syntax

IF [NOT] ERRORLEVEL number command IF [NOT] string1 == string2 command IF [NOT] EXIST filnamn kommando

INTE Anger att Windows 2000 eller XP endast ska utföra kommandot om villkoret är felaktigt.
FELLEVEL-nummer Anger ett riktigt villkor om det sista programkörningen gav en utgångskod lika med eller större än det angivna antalet.
sträng1 == sträng2 Anger ett riktigt villkor om de angivna textsträngarna matchar.
EXIST filnamn Anger ett verkligt villkor om det angivna filnamnet finns.
kommando Anger kommandot att utföra om villkoret är uppfyllt. Kommandot kan följas av ELSE-kommandot som kommer att köra kommandot efter ELSE-nyckelordet om det angivna villkoret är FALSE.

ELSE-klausulen måste förekomma på samma rad som kommandot efter IF. Till exempel:

IF EXIST filnamn. (del filnamn.) ELSE (echo filnamn. saknas.)

Exemplet nedan fungerar INTE eftersom del-kommandot behöver avslutas med en ny linje:

IF EXIST filnamn. del filnamn. ELSE eko filnamn. saknas

Exemplet nedan fungerar inte heller, eftersom ELSE-kommandot måste vara på samma rad som slutet på IF-kommandot:

IF EXIST filnamn. del filnamn. ELSE eko filnamn. saknas

Exemplet nedan fungerar om du vill ha allt på en rad:

IF EXIST filnamn. (del filnamn.) ELSE eko filnamn. saknas

Om kommandotillägg är aktiverade ändras IF enligt följande:

IF [/ I] string1 jämför-op string2 kommando IF CMDEXTVERSION nummer kommando IF DEFINED variabel kommando

där jämför-op kan vara en av:

  • EQU - lika
  • NEQ - inte lika
  • LSS - mindre än
  • LEQ - mindre än eller lika
  • GTR - större än
  • GEQ - större än eller lika

och / I-omkopplaren, om det anges, säger att göra falllösa strängjämförelser. / I-omkopplaren kan också användas på strängen1 == string2-formen av IF. Dessa jämförelser är generiska, om både sträng1 och sträng2 består av alla numeriska siffror, konverteras de till siffror och en numerisk jämförelse utförs.

Villkoret för CMDEXTVERSION fungerar som ERRORLEVEL, förutom att det jämförs med ett internt versionnummer kopplat till kommandotillägg. Den första versionen är 1. Den kommer att ökas av en när betydande förbättringar läggs till i kommandotillägg. CMDEXTVERSION villkoras aldrig när kommandotillägg är inaktiverade.

DEFINERAD villkor fungerar som EXISTS förutom att den tar en miljövariabelns namn och returnerar true om miljövariabeln är definierad.

% ERRORLEVEL% expanderas till en sträng av det aktuella värdet för ERRORLEVEL, förutsatt att det inte redan finns en miljövariabel med namnet ERRORLEVEL, i vilket fall får du dess värde. Efter att ha kört ett program illustrerar exemplet nedan ERRORLEVEL-användning:

goto svar% ERRORLEVEL%: answer0 echo Programmet hade returkod 0: svar1 echo Programmet hade returkod 1

Du kan också använda de numeriska jämförelserna nedan:

OM% ERRORLEVEL% LEQ 1 går okej

% CMDCMDLINE% expanderar till kommandoraden som skickas till CMD.EXE innan någon bearbetning av CMD.EXE, förutsatt att det inte finns en CMDCMDLINE-miljövariabel, i vilket fall får du dess värde.

% CMDEXTVERSION% expanderas till en sträng med värdet på CMDEXTVERSION, förutsatt att det inte redan finns en miljövariabel med namnet CMDEXTVERSION, i vilket fall får du dess värde.

Windows XP och tidigare syntax

Utför villkorlig behandling i batchprogram.

IF [NOT] ERRORLEVEL number command IF [NOT] string1 == string2 command IF [NOT] EXIST filnamn kommando

INTE Anger att Windows endast ska utföra kommandot om villkoret är felaktigt.
FELLEVEL-nummer Anger ett riktigt villkor om det sista programkörningen gav en utgångskod lika med eller större än det angivna antalet.
kommando Anger kommandot att utföra om villkoret är uppfyllt.
sträng1 == sträng2 Anger ett riktigt villkor om de angivna textsträngarna matchar.
EXIST filnamn Anger ett verkligt villkor om det angivna filnamnet finns.