MS-DOS og Windows kommandolinje hvis kommando

Innholdsfortegnelse:

MS-DOS og Windows kommandolinje hvis kommando
MS-DOS og Windows kommandolinje hvis kommando

Video: Command Prompt Tutorial for Beginners - Tips & Tricks 2024, Kan

Video: Command Prompt Tutorial for Beginners - Tips & Tricks 2024, Kan
Anonim

Kommandoen if utfører betinget behandling i batch-programmer.

Tilgjengelighet

If-kommandoen er en intern kommando som brukes og brukes i batchfiler.

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

syntax

  • Windows Vista og senere syntaks.
  • Windows XP og tidligere syntaks.

Windows Vista og senere syntaks

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

IKKE Angir at Windows 2000 eller XP bare skal utføre kommandoen hvis tilstanden er falsk.
FEILLEVEL nummer Spesifiserer en sann tilstand hvis det siste programkjøringen returnerte en utgangskode lik eller større enn antallet som er angitt.
streng1 == streng2 Angir en sann betingelse hvis de spesifiserte tekststrengene samsvarer.
EXIST filnavn Angir en sann betingelse hvis det spesifiserte filnavnet eksisterer.
kommando Angir kommandoen som skal utføres hvis betingelsen er oppfylt. Kommando kan følges av ELSE-kommandoen som vil utføre kommandoen etter ELSE-nøkkelordet hvis den angitte tilstanden er FALSE.

ELSE-klausulen må forekomme på samme linje som kommandoen etter IF. For eksempel:

IF EXIST filnavn. (del filnavn.) ELSE (ekko filnavn mangler.)

Eksemplet nedenfor fungerer IKKE fordi del-kommandoen må avsluttes av en ny linje:

IF EXIST filnavn. del filnavn. ELSE ekko filnavn. savnet

Eksemplet nedenfor vil heller ikke fungere, fordi ELSE-kommandoen må være på samme linje som slutten av IF-kommandoen:

IF EXIST filnavn. del filnavn. ELSE ekko filnavn. savnet

Eksemplet nedenfor fungerer hvis du vil ha det hele på en linje:

IF EXIST filnavn. (del filnavn.) ELSE ekko filnavn. savnet

Hvis kommandoutvidelser er aktivert, endres IF som følger:

IF [/ I] string1 sammenligne-string2 kommando IF CMDEXTVERSION nummer kommando IF DEFINED variabel kommando

der sammenligning kan være en av:

  • EQU - lik
  • NEQ - ikke like
  • LSS - mindre enn
  • LEQ - mindre enn eller lik
  • GTR - større enn
  • GEQ - større enn eller lik

og / I-bryteren, hvis spesifisert, sier å gjøre tilfelle ufølsom streng sammenlikner. / I-bryteren kan også brukes på strengen1 == streng2-form av IF. Disse sammenligningene er generiske, hvis både streng1 og streng2 er sammensatt av alle tallsifre, konverteres de til tall og en numerisk sammenligning utføres.

Betingelsen med CMDEXTVERSION fungerer som ERRORLEVEL, bortsett fra at den sammenligner med et internt versjonsnummer tilknyttet kommandutvidelsene. Den første versjonen er 1. Den vil bli økt med én når betydelige forbedringer legges til i kommandutvidelsene. Betinget CMDEXTVERSION er aldri sant når kommandutvidelser er deaktivert.

DEFINERT betingede fungerer som EXISTS, bortsett fra at den tar et miljøvariabelnavn og kommer tilbake hvis miljøvariabelen er definert.

% ERRORLEVEL% utvides til en streng med gjeldende verdi på ERRORLEVEL, forutsatt at det ikke allerede er en miljøvariabel med navnet ERRORLEVEL, i så fall får du verdien. Etter å ha kjørt et program, illustrerer eksemplet nedenfor ERRORLEVEL bruk:

gå til svar% FEIL%: svar0 ekko Program hadde returkode 0: svar1 ekko Program hadde returkode 1

Du kan også bruke de numeriske sammenligningene nedenfor:

HVIS% ERRORLEVEL% LEQ 1 går bra

% CMDCMDLINE% utvides til kommandolinjen som sendes til CMD.EXE før behandling av CMD.EXE, forutsatt at det ikke er en CMDCMDLINE-miljøvariabel, i så fall får du verdien.

% CMDEXTVERSION% utvides til en streng med verdien til CMDEXTVERSION, forutsatt at det ikke allerede er en miljøvariabel med navnet CMDEXTVERSION, i så fall får du verdien.

Windows XP og tidligere syntaks

Utfører betinget behandling i batch-programmer.

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

IKKE Angir at Windows bare skal utføre kommandoen hvis tilstanden er falsk.
FEILLEVEL nummer Spesifiserer en sann tilstand hvis det siste programkjøringen returnerte en utgangskode lik eller større enn antallet som er angitt.
kommando Angir kommandoen som skal utføres hvis betingelsen er oppfylt.
streng1 == streng2 Angir en sann betingelse hvis de spesifiserte tekststrengene samsvarer.
EXIST filnavn Angir en sann betingelse hvis det spesifiserte filnavnet eksisterer.