Ha - az üzemeltető a feltételes parancsok végrehajtása egy batch file windows

Parancssor formátuma:

IF [NOT] ERRORLEVEL száma parancs

IF [NOT] == line1 line2 parancs

IF [NOT] LÉTEZIK fájlnév paranccsal

NEM - Meghatározza, hogy a Windows kell futtatni ezt a parancsot csak akkor, ha a feltétel hamis.

ERRORLEVEL számát - A feltétel igaz, ha a visszatérési kód az utolsó végrehajtott program nem kisebb, mint a megadott számot.

line1 line2 == - Feltétel igaz, ha az említett mérkőzés vonalon.

VANNAK fájlnév - a feltétel igaz, ha a megadott fájlnév létezik.

parancs - Megadja a parancs fut le az igazság feltételekkel. Ez a parancs kulcsszó követi más. Ha a fenti feltétel nem teljesül, a parancs végrehajtása, található a szó után mást.

Else kell az ugyanabban a sorban, mint az azt követő parancsot a kulcs szó IF. Például:

If exist fájlnév. (
del fájlnév.
) Else (
echo fájlnév. hiányzik.
)

A következő példa egy hibát tartalmaz, mivel a del parancsot kell szüntetni egy újsor:

If exist fájlnév. del fájlnév. Else echo fájlnév. hiányzó

A következő példa is hibát tartalmaz, mivel a ELSE parancs kell az ugyanabban a sorban, mint a parancsot követően IF:

If exist fájlnév. del fájlnév.
Else echo fájlnév. hiányzó
Itt egy példa a jobb oldalon, ahol minden csapat ugyanabban a sorban:

If exist fájlnév. (Del fájlnév.) Else echo fájlnevet. hiányzó

IF parancs változás engedélyezve vannak parancsot:

IF [/ I] line1 line2 parancs operator_sravneniya
IF CMDEXTVERSION száma csapat
Ha meghatározásra változó parancs

operator_sravneniya ahol az alábbi értékek:

EQU - egyenlő
NEQ - nem egyenlő
LSS - kevesebb
LEQ - kisebb vagy egyenlő
GTR - nagyobb
GEQ - nagyobb vagy egyenlő,

és a kulcs / I. ha meg van adva, beállítja az összehasonlítás szövegfüzér érzéketlen. / I kapcsoló is használható formában string1 == karakterlánc2 parancs IF. Összehasonlítások készülnek az általános adatok típusától, úgy, hogy ha a vonalak az 1. és 2. csak számokat tartalmaz, akkor mindkét sor alakítjuk számokat, majd az összehasonlítás a számok.

Feltételek használt CMDEXTVERSION mint ERRORLEVEL állapotban van, de az értéket összehasonlítjuk egy belső verziószáma a jelenlegi végrehajtását, a kiterjesztett parancs feldolgozása. Az első változat 1. A verziószám eggyel nő minden alkalommal, amikor lényeges tulajdonsága fokozott feldolgozási parancsokat. Amikor csapatok fejlett feldolgozó tiltva, CMDEXTVERSION feltétel nem igaz.

Feltételek, mint létezik MEGHATÁROZOTT alkalmazott feltételt. de úgy érvként egy környezeti változó nevét és igaz értéket ad vissza, ha a változó definiálva van.

Sztring% ERRORLEVEL% kerül sor egy sor tartalmazza az aktuális értékének ERRORLEVEL hibakód, kivéve a helyzet, amikor már van egy környezeti változó nevét ERRORLEVEL; ilyen esetben mit fog tartalmazni a változó értékeit. Például, ezt a string lehet az alábbiak szerint végezzük:

goto válaszolni% ERRORLEVEL%
: answer0
Kapott echo visszatérési kód 0
: Válasz1
Kapott echo visszatérési kód 1

És engedélyezett alkalmazások numerikus összehasonlító operátorok fent leírt:

IF% ERRORLEVEL% LEQ 1 goto rendben

Sor% CMDCMDLINE% kerül sor az eredeti parancskarakterláncot átadott CMD.EXE bármilyen kezelést, kivéve a helyzetet, amikor a közeg már definiált változó nevű CMDCMDLINE; ilyen esetben mit fog tartalmazni a változó értékeit.

Sor% CMDEXTVERSION% kerül sor egy string, amely képviseli az aktuális érték CMDEXTVERSION, kivéve azokat az eseteket, ahol már van egy közepes változó nevű CMDEXTVERSION; ilyen esetben mit fog tartalmazni a változó értékeit.

  • Hozzon létre egy üres fájlt, amelynek neve által adott parancssori paraméter.

    Ha a parancssori paraméter nincs megadva, a felhasználó be egy hibaüzenetet.

    n0 fájlnév.kiterjesztés
    : exit

    Példák megfelelő kimeneti és a megfelelő csomópontok:

    Command találni / I „TTL” értéke ERRORLEVEL kódsor értéke 0. Ha a „TTL” van jelen eredményeként ping. A / I kapcsoló van értelme használni, úgy, hogy az eredmény nem függ attól, hogy a kisbetűs vagy nagybetűs karaktereket egy string „ttl”.
    Az eredmény a kötegelt fájl van írva, hogy egy szöveges fájlt iplist.txt

    Vannak néhány sajátossága CMD.EXE héj. hogy figyelembe kell venni feldolgozásakor változókat, ha és ciklusok. A változók értékét zárójelben, a szabvány előírja a változás mód parancsot processzor értelmezést. Feltéve fejlesztők képesek futtatni CMD.EXE paraméter / V: ON. amely magában foglalja engedélye késleltetett környezeti változó bővítése a felkiáltójel karaktert (!), mint egy elválasztó. Ez azt jelenti, a paraméter / V: ON lehetővé teszi a használatát var !! a változó értéke var végrehajtási időben az utasítás Ciklusok és IF. A gyakorlatban azonban gyakrabban használják lehetőségét felvétele a helyi körülmények belsejében a batch fájl egy speciális irányelv:

    Ezt követően lehetőség van, hogy feldolgozza a kapott változók értékeit a hurkon belül, használata helyett a felkiáltójelek százalék:

    nbsp Az orosz nyelvű nbsp IF parancs segítségével olyan hiba, amely sok éven át halad verziójukban - ahelyett, hogy az üzemeltető EQU - egyenlő. Ismeretlen EQL - még