MS-DOS și linia de comandă Windows dacă comanda

Cuprins:

MS-DOS și linia de comandă Windows dacă comanda
MS-DOS și linia de comandă Windows dacă comanda

Video: Comenzi de baza in CMD 2024, Mai

Video: Comenzi de baza in CMD 2024, Mai
Anonim

Comanda if efectuează procesarea condiționată în programele de lot.

Disponibilitate

Comanda if este o comandă internă accesată și folosită în fișierele de lot.

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

Sintaxă

  • Windows Vista și sintaxa ulterioară.
  • Windows XP și sintaxa anterioară.

Windows Vista și sintaxa ulterioară

IF [NU] Comanda numărului ERRORLEVEL IF [NOT] string1 == comanda string2 IF [NU] EXISTENȚI numele fișierului

NU Specifică faptul că Windows 2000 sau XP ar trebui să efectueze comanda numai dacă starea este falsă.
Numărul ERRORLEVEL Specifică o condiție adevărată dacă ultimul program rulat a returnat un cod de ieșire egal sau mai mare decât numărul specificat.
șir1 == string2 Specifică o condiție adevărată dacă șirurile de text specificate se potrivesc.
EXISTENȚI numele de fișier Specifică o condiție adevărată dacă există numele de fișier specificat.
comanda Specifică comanda de îndeplinit dacă este îndeplinită condiția. Comanda poate fi urmată de comanda ELSE care va executa comanda după cuvântul cheie ELSE dacă condiția specificată este FALSE.

Clauza ELSE trebuie să apară pe aceeași linie cu comanda după IF. De exemplu:

DACĂ EXISTAți numele de fișier. (del nume de fișier.) ELSE (ecou nume de fișier. lipsă.)

Exemplul de mai jos NU funcționează deoarece comanda del trebuie să fie încheiată de o linie nouă:

DACĂ EXISTAți numele de fișier. del nume de fișier. Nume de fișier ecou ELSE. dispărut

Nici exemplul de mai jos nu va funcționa, deoarece comanda ELSE trebuie să fie pe aceeași linie cu sfârșitul comenzii IF:

DACĂ EXISTAți numele de fișier. del nume de fișier. Nume de fișier ecou ELSE. dispărut

Exemplul de mai jos ar funcționa dacă doriți totul pe o singură linie:

DACĂ EXISTAți numele de fișier. (delame nume.) ELSE ecografie nume de fișier. dispărut

Dacă extensiile de comandă sunt activate IF se modifică după cum urmează:

IF [/ I] string1 Comanda string-op string2 Comanda numărul CMDEXTVERSION IF Comandă variabilă DEFINATĂ

unde comparația poate fi una dintre:

  • EQU - egal
  • NEQ - nu este egal
  • LSS - mai puțin de
  • LEQ - mai mic sau egal
  • GTR - mai mare decât
  • GEQ - mai mare sau egal

iar comutatorul / I, dacă este specificat, spune că se compară șiruri nesensibile la litere mari. Comutatorul / I poate fi utilizat și pe forma string1 == string2 IF. Aceste comparații sunt generice, dacă atât string1 cât și string2 sunt compuse din toate cifrele numerice, atunci sunt convertite în numere și se efectuează o comparație numerică.

Condiția CMDEXTVERSION funcționează ca ERRORLEVEL, cu excepția faptului că se compară cu un număr intern de versiune asociat cu Extensiile de comandă. Prima versiune este 1. Va fi incrementată cu una când se vor adăuga îmbunătățiri semnificative la Extensiile de comandă. Condiția CMDEXTVERSION nu este niciodată adevărată atunci când extensiile de comandă sunt dezactivate.

Condiționalul DEFINAT funcționează ca EXISTE, cu excepția faptului că ia un nume de variabilă de mediu și returnează adevărat dacă este definită variabila de mediu.

% ERRORLEVEL% se extinde într-un șir cu valoarea curentă a ERRORLEVEL, cu condiția să nu existe deja o variabilă de mediu cu numele ERRORLEVEL, caz în care obțineți valoarea acesteia. După rularea unui program, exemplul de mai jos ilustrează utilizarea ERRORLEVEL:

goto răspuns% ERRORLEVEL%: răspuns0 ecou Programul a avut cod retur 0: răspuns1 ecou Programul a avut cod retur 1

Puteți utiliza, de asemenea, comparațiile numerice de mai jos:

DACĂ% ERRORLEVEL% LEQ 1 bine

% CMDCMDLINE% se extinde la linia de comandă transmisă la CMD.EXE înainte de orice prelucrare de către CMD.EXE, cu condiția să nu existe o variabilă de mediu CMDCMDLINE, caz în care obțineți valoarea acesteia.

% CMDEXTVERSION% se extinde într-un șir cu valoarea CMDEXTVERSION, cu condiția să nu existe deja o variabilă de mediu cu numele CMDEXTVERSION, caz în care obțineți valoarea acesteia.

Windows XP și sintaxa anterioară

Efectuează procesarea condiționată în programele de lot.

IF [NU] Comanda numărului ERRORLEVEL IF [NOT] string1 == comanda string2 IF [NU] EXISTENȚI numele fișierului

NU Specifică faptul că Windows ar trebui să efectueze comanda numai dacă starea este falsă.
Numărul ERRORLEVEL Specifică o condiție adevărată dacă ultimul program rulat a returnat un cod de ieșire egal sau mai mare decât numărul specificat.
comanda Specifică comanda de îndeplinit dacă este îndeplinită condiția.
șir1 == string2 Specifică o condiție adevărată dacă șirurile de text specificate se potrivesc.
EXISTENȚI numele de fișier Specifică o condiție adevărată dacă există numele de fișier specificat.