În cazul în care - operatorul de executare condiționată de comenzi într-un fișier batch ferestre

Format linie de comandă:

DACĂ [NU] comanda numărul ERRORLEVEL

DACĂ [NU] == comanda line2 line1

DACĂ [NU] EXIST comanda nume de fișier

NU - Specifică că Windows ar trebui să ruleze această comandă numai în cazul în care condiția este falsă.

Numărul ERRORLEVEL - Condiția este adevărată în cazul în care codul de retur al ultimului program executat nu este mai mic decât numărul specificat.

linia1 linie2 == - Condiția este adevărat dacă respectiva linie de meci.

EXIST filename - Condiția este adevărată dacă există numele de fișier specificat.

comandă - Specifică comanda pe care se execută atunci când condițiile de adevăr. Această comandă poate fi urmată de ELSE de cuvinte cheie. În cazul în care condiția de mai sus este falsă, comanda este executată, aflat după cuvântul ELSE.

clauza else trebuie să fie în aceeași linie ca și comanda care urmează cuvântul cheie IF. De exemplu:

Dacă există nume de fișier. (
del nume de fișier.
) ELSE (
numele fișierului ecou. lipsă.
)

Exemplul următor conține o eroare, deoarece del comanda trebuie terminată printr-o linie nouă:

Dacă există nume de fișier. del nume de fișier. numele fișierului ecou ELSE. dispărut

Exemplul de mai jos conține, de asemenea, o eroare, deoarece comanda ELSE trebuie să fie în aceeași linie cu următoarea comandă IF:

Dacă există nume de fișier. del nume de fișier.
numele fișierului ecou ELSE. dispărut
Aici este un exemplu de dreapta, în cazul în care toate echipele sunt în aceeași linie:

Dacă există nume de fișier. (Del nume de fișier.) Numele fișierului ELSE ecou. dispărut

Dacă extensiile de schimbare de comandă sunt activate de comandă:

IF [/ i] operator_sravneniya comandă line1 line2
Dacă numărul CMDEXTVERSION de echipa
IF comanda variabilă definită

operator_sravneniya în cazul în care următoarele valori:

EQU - egal
NEQ - nu este egal
LSS - mai putin
LEQ - mai mică sau egală
GTR - o mai mare
GEQ - mai mare sau egală,

și / cheie I. în cazul în care se specifică, stabilește o comparație între șiruri de text insensibile. / Comut pot fi, de asemenea, utilizat în forma șir1 == comanda string2 IF. Comparațiile sunt realizate pe tipul general de date, astfel încât, dacă liniile 1 și 2 conțin doar numere, atunci ambele linii sunt convertite în numere, iar apoi compararea numerelor.

Condițiile folosite CMDEXTVERSION ca starea ERRORLEVEL, dar valoarea este comparată cu un număr de versiune internă a implementării curente, procesarea comenzii extinse. Prima versiune este 1. Numărul de versiune va crește cu unul de fiecare dată când adăugați caracteristici esențiale comenzi îmbunătățite de prelucrare. Atunci când echipele avansate de procesare cu handicap, stare CMDEXTVERSION nu este adevărat.

Condițiile precum EXIST DEFINIT condiție aplicată. dar are ca argument un mediu nume de variabilă și returnează true dacă variabila este definită.

Șir% ERRORLEVEL% vor fi implementate într-un șir de caractere reprezentînd valoarea curentă a ERRORLEVEL cod de eroare, cu excepția situației în care există deja o variabilă de mediu cu numele ERRORLEVEL; într-un astfel de caz, acesta va conține valoarea acestei variabile. De exemplu, folosind acest șir poate fi efectuată după cum urmează:

Goto răspundă% ERRORLEVEL%
: answer0
Codul primit retur ecou 0
: Răspuns 1
Codul primit retur ecou 1

Și sunt permise aplicații operatori de comparare numerică descrisă mai sus:

DACĂ% ERRORLEVEL% LEQ 1 Goto bine

Rând% CMDCMDLINE% vor fi implementate în șirul de comandă inițială a trecut la CMD.EXE orice tratament, cu excepția situației în care mediul este deja definit variabila numita CMDCMDLINE; într-un astfel de caz, acesta va conține valoarea acestei variabile.

Rând% CMDEXTVERSION% vor fi implementate într-un șir de caractere care reprezintă CMDEXTVERSION valoarea curentă, cu excepția situațiilor în care există deja o CMDEXTVERSION variabilă medie pe nume; într-un astfel de caz, acesta va conține valoarea acestei variabile.

  • Creați un fișier gol al cărui nume este dat de parametrul de linie de comandă.

    Dacă parametrul de linie de comandă nu este specificată, utilizatorul este prezentat cu un mesaj de eroare.

    filename.ext n0
    : ieșire

    Exemple de ieșire corespunzătoare și corespunzătoare nodurilor:

    Comandă find / I „TTL“ returnează codul ERRORLEVEL string este egal cu 0. Dacă „TTL“ este prezent, ca urmare a ping. / Comut are sens să folosească, astfel încât rezultatul nu depinde de faptul dacă litere mici sau caractere cu majuscule este un șir de caractere „ttl“.
    Rezultatul fișier batch este scris într-un fișier text iplist.txt

    Există unele particularități ale CMD.EXE coajă. care trebuie luate în considerare atunci când procesarea variabilelor în IF și pentru ciclurile. Folosind valorile variabilelor din paranteze, standardul impune o interpretare procesor de comandă modul de schimbare. Dezvoltatorii Prevăzut cu abilitatea de a rula CMD.EXE parametru / V: ON. care include permisiunea întârziată de mediu variabilă de expansiune folosind caracterul semn de exclamare (!) ca separator. Aceasta este, parametrul / V: permite pe utilizarea de var !! ca valoarea var variabil la timpul de execuție în cadrul ciclurilor de instruire pentru și IF. Dar, în practică, se utilizează mai frecvent posibilitatea includerii condițiilor locale în interiorul fișier batch directivă specială:

    După aceea, este posibil să se prelucreze valorile primite ale variabilelor în interiorul buclei, în loc să folosească semne de exclamație procentul:

    nbsp În nbsp vorbitoare de limbă rusă cazul în care comanda de ajutor există o eroare, care de mai mulți ani trece de la o versiune la alta - în loc de teh operatorului - egal. Necunoscut EQL - încă