MS-DOS og Windows kommandolinje hvis kommando

Indholdsfortegnelse:

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 udfører betinget behandling i batch-programmer.

tilgængelighed

Kommandoen if er en intern kommando, der er adgang til og bruges i batchfiler.

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

Syntaks

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

Windows Vista og senere syntaks

IF [NOT] ERRORLEVEL nummerkommando IF [NOT] string1 == string2 kommando IF [NOT] EXIST filnavn kommando

IKKE Angiver, at Windows 2000 eller XP kun skal udføre kommandoen, hvis betingelsen er falsk.
ERRORLEVEL-nummer Specificerer en ægte betingelse, hvis det sidste programkørsel returnerede en exit-kode, der er lig med eller større end det angivne antal.
streng1 == streng2 Angiver en ægte betingelse, hvis de specificerede tekststrenge stemmer overens.
EXIST filnavn Specificerer en ægte betingelse, hvis det specificerede filnavn findes.
kommando Specificerer kommandoen, der skal udføres, hvis betingelsen er opfyldt. Kommando kan følges af ELSE-kommandoen, der udfører kommandoen efter ELSE-nøgleordet, hvis den specificerede betingelse er FALSE.

ELSE-klausulen skal forekomme på samme linje som kommandoen efter IF. For eksempel:

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

Eksemplet nedenfor fungerer IKKE, fordi del-kommandoen skal afsluttes med en ny linje:

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

Eksemplet nedenfor fungerer heller ikke, fordi ELSE-kommandoen skal være på samme linje som slutningen af ​​IF-kommandoen:

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

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

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

Hvis kommandoudvidelser er aktiveret, ændres IF som følger:

IF [/ I] streng1 sammenligning-kommando string2 kommando IF CMDEXTVERSION nummer kommando IF DEFINED variabel kommando

hvor sammenligning kan være en af:

  • EQU - lige
  • NEQ - ikke ens
  • LSS - mindre end
  • LEQ - mindre end eller lige
  • GTR - større end
  • GEQ - større end eller lige

og / I-kontakten, hvis angivet, siger at gøre sansefølsom streng sammenligninger. / I-kontakten kan også bruges på string1 == string2-formen af ​​IF. Disse sammenligninger er generiske, hvis både streng1 og streng2 er sammensat af alle numeriske cifre, konverteres de til tal, og der udføres en numerisk sammenligning.

Betingelsen med CMDEXTVERSION fungerer som ERRORLEVEL, bortset fra at den sammenligner med et internt versionsnummer, der er knyttet til kommandoudvidelserne. Den første version er 1. Den øges med en, når der tilføjes væsentlige forbedringer til kommandoudvidelserne. CMDEXTVERSION betinget er aldrig sandt, når kommandoudvidelser er deaktiveret.

DEFINED betingede fungerer som EXISTS, medmindre det tager et miljøvariablenavn og returnerer sandt, hvis miljøvariablen er defineret.

% ERRORLEVEL% udvides til en streng med den aktuelle værdi af ERRORLEVEL, forudsat at der ikke allerede er en miljøvariabel med navnet ERRORLEVEL, i hvilket tilfælde du får dens værdi. Efter at have kørt et program, illustrerer eksemplet herunder ERRORLEVEL-brug:

gå til svar% FEJLLÆG%: svar0 ekko Program havde returkode 0: svar1 ekko Program havde returkode 1

Du kan også bruge de numeriske sammenligninger nedenfor:

HVIS% ERRORLEVEL% LEQ 1 går okay

% CMDCMDLINE% udvides til kommandolinjen, der er videregivet til CMD.EXE, inden nogen behandling af CMD.EXE, forudsat at der ikke er en CMDCMDLINE-miljøvariabel, i hvilket tilfælde du får dens værdi.

% CMDEXTVERSION% udvides til en streng med værdien af ​​CMDEXTVERSION, forudsat at der ikke allerede er en miljøvariabel med navnet CMDEXTVERSION, i hvilket tilfælde du får dens værdi.

Windows XP og tidligere syntaks

Udfører betinget behandling i batch-programmer.

IF [NOT] ERRORLEVEL nummerkommando IF [NOT] string1 == string2 kommando IF [NOT] EXIST filnavn kommando

IKKE Angiver, at Windows kun skal udføre kommandoen, hvis betingelsen er falsk.
ERRORLEVEL-nummer Specificerer en ægte betingelse, hvis det sidste programkørsel returnerede en exit-kode, der er lig med eller større end det angivne antal.
kommando Specificerer kommandoen, der skal udføres, hvis betingelsen er opfyldt.
streng1 == streng2 Angiver en ægte betingelse, hvis de specificerede tekststrenge stemmer overens.
EXIST filnavn Specificerer en ægte betingelse, hvis det specificerede filnavn findes.