Megosztás a következőn keresztül:


ha

Feltételes feldolgozást végez kötegelt programokban.

Szinopszis

if [not] ERRORLEVEL <number> <command> [else <expression>]
if [not] <string1>==<string2> <command> [else <expression>]
if [not] exist <filename> <command> [else <expression>]

Ha a parancsbővítmények engedélyezve vannak, használja a következő szintaxist:

if [/i] <string1> <compareop> <string2> <command> [else <expression>]
if cmdextversion <number> <command> [else <expression>]
if defined <variable> <command> [else <expression>]

Paraméterek

Paraméter Leírás
nem Azt határozza meg, hogy a parancsot csak akkor kell végrehajtani, ha a feltétel hamis.
hibaszintű <number> Csak akkor ad meg igaz feltételt, ha az előző, Cmd.exe által futtatott program számmal egyenlő vagy annál nagyobb kilépési kódot adott vissza.
<command> Megadja azt a parancsot, amelyet az előző feltétel teljesülése esetén végre kell hajtani.
<string1>==<string2> Csak akkor ad meg igaz feltételt, ha sztring1 és sztring2 azonosak. Ezek az értékek lehetnek literális sztringek vagy kötegváltozók (például %1). A literális sztringeket nem kell idézőjelek közé foglalnia.
létezik <filename> Igaz feltételt ad meg, ha a megadott fájlnév létezik.
<compareop> Hárombetűs összehasonlító operátort ad meg, beleértve a következőket:
  • EQU – Egyenlő
  • NEQ – Nem egyenlő
  • LSS- – Kisebb, mint
  • LEQ – Kisebb vagy egyenlő
  • GTR – Nagyobb, mint
  • GEQ – Nagyobb vagy egyenlő
/én Sztring-összehasonlítások kényszerítése a kis- és nagybetűk figyelmen kívül hagyására. A /istring1==string2 formájában is használhatja, ha. Ezek az összehasonlítások általánosak, ha sztring1 és sztring2 csak numerikus számjegyekből állnak, a sztringek számokká lesznek konvertálva, és numerikus összehasonlítást hajtanak végre.
cmdextversion <number> Csak akkor ad meg igaz feltételt, ha az Cmd.exe parancskiterjesztési funkciójával társított belső verziószám egyenlő vagy nagyobb, mint a megadott szám. Az első verzió 1. Ha jelentős fejlesztéseket ad hozzá a parancsbővítményekhez, az egy lépéssel növekszik. A parancskiterjesztés feltétele soha nem igaz, ha a parancsbővítmények le vannak tiltva (alapértelmezés szerint a parancsbővítmények engedélyezve vannak).
definiált <variable> Igaz feltételt ad meg, ha változó van definiálva.
<expression> Megadja a parancssori parancsot és azokat a paramétereket, amelyeket át kell adni a parancsnak egy más záradékban.
/? Súgó megjelenítése a parancssorban.

Megjegyzések

  • Ha egy záradékban megadott feltétel igaz, a rendszer végrehajtja a feltételt követő parancsot. Ha a feltétel hamis, akkor a parancsa, ha záradék figyelmen kívül lesz hagyva, és a parancs végrehajtja a más záradékban megadott parancsokat.

  • Amikor egy program leáll, egy kilépési kódot ad vissza. Kilépési kódok feltételként való használatához használja a hibaszintű paramétert.

  • Ha definiálthasznál, a rendszer a következő három változót adja hozzá a környezethez: %errorlevel%, %cmdcmdline%és %cmdextversion%.

    • %errorlevel%: Az ERRORLEVEL környezeti változó aktuális értékének sztring-ábrázolásával bővül ki. Ez a változó feltételezi, hogy még nem létezik HIBASZINT nevű környezeti változó. Ha van ilyen, ezt az ERRORLEVEL értéket fogja kapni.

    • %cmdcmdline%: A Cmd.exeáltal történő feldolgozás előtt Cmd.exe átadott eredeti parancssorba bont. Ez feltételezi, hogy még nincs CMDCMDLINE nevű környezeti változó. Ha van ilyen, akkor a CMDCMDLINE értéket fogja megkapni.

    • %cmdextversion%: A parancsmag-aktuális értékének sztringképére bont. Ez feltételezi, hogy még nincs CMDEXTVERSION nevű környezeti változó. Ha van ilyen, ezt a CMDEXTVERSION értéket fogja megkapni.

  • A záradékot a utáni paranccsal megegyező sorban kell használnia, ha.

Példák

Az üzenet megjelenítéséhez Nem található adatfájl, ha a Product.dat nem található, írja be a következőt:

if not exist product.dat echo Cannot find data file

Ha formázni szeretne egy lemezt az A meghajtón, és hibaüzenetet szeretne megjeleníteni, ha hiba történik a formázási folyamat során, írja be a következő sorokat egy kötegfájlba:

:begin
@echo off
format a: /s
if not errorlevel 1 goto end
echo An error occurred during formatting.
:end
echo End of batch program.

Ha törölni szeretné a fájlt Product.dat az aktuális könyvtárból, vagy ha Product.dat nem található, akkor írja be a következő sorokat egy kötegfájlba:

IF EXIST Product.dat (
del Product.dat
) ELSE (
echo The Product.dat file is missing.
)

Megjegyzés

Ezek a vonalak egyetlen sorba egyesíthetők az alábbiak szerint:

IF EXIST Product.dat (del Product.dat) ELSE (echo The Product.dat file is missing.)

Ha egy kötegfájl futtatása után meg szeretné jeleníteni az ERRORLEVEL környezeti változó értékét, írja be a következő sorokat a kötegfájlba:

goto answer%errorlevel%
:answer1
echo The program returned error level 1
goto end
:answer0
echo The program returned error level 0
goto end
:end
echo Done!

Ha az ERRORLEVEL környezeti változó értéke kisebb vagy egyenlő 1-nél, lépjen a helyes címkére, írja be a következőt:

if %errorlevel% LEQ 1 goto okay