Sdílet prostřednictvím


if

Provádí podmíněné zpracování v dávkových programech.

Syntax

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

Pokud jsou povolená rozšíření příkazů, použijte následující syntaxi:

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

Parameters

Parameter Description
not Určuje, že příkaz by se měl provést pouze v případě, že je podmínka nepravda.
<number> úrovně chyb Určuje podmínku true pouze v případě, že předchozí program spuštěný Cmd.exe vrátil ukončovací kód rovný nebo větší než číslo.
<command> Určuje příkaz, který se má provést, pokud je splněna předchozí podmínka.
<string1>==<string2> Určuje podmínku true pouze v případě, že string1 a string2 jsou stejné. Tyto hodnoty mohou být literálové řetězce nebo dávkové proměnné (například %1). Literální řetězce není nutné uzavřít do uvozovek.
existují <filename> Určuje podmínku true, pokud zadaný název souboru existuje.
<compareop> Určuje operátor porovnání se třemi písmeny, včetně:
  • EQU - Rovná se
  • NEQ - Nerovná se
  • LSS - Méně než
  • LEQ - Menší nebo rovno
  • GTR - Větší než
  • GEQ - Větší než nebo rovno
/i Vynutí porovnání řetězců tak, aby ignorovala malá a velká písmena. Parametr /i můžete použít ve string1==string2 tvaru příkazu if. Tato porovnání jsou obecná v tom smyslu, že pokud se string1 i string2 skládají pouze z číselných číslic, řetězce se převedou na čísla a provede se číselné porovnání.
cmdextversion <number> Určuje podmínku true pouze v případě, že je číslo interní verze přidružené k funkci rozšíření příkazů Cmd.exe rovna nebo větší než zadané číslo. První verze je 1. Při přidání významných vylepšení do rozšíření příkazů se zvyšuje o přírůstek. Podmíněný cmdextversion není nikdy pravdivý, pokud jsou zakázána rozšíření příkazů (ve výchozím nastavení jsou povolena rozšíření příkazů).
definované <variable> Určuje pravdivou podmínku, pokud je definována proměnná .
<expression> Určuje příkaz příkazového řádku a všechny parametry, které mají být předány příkazu v klauzuli else .
/? Zobrazí nápovědu na příkazovém řádku.

Remarks

  • Pokud je podmínka zadaná v klauzuli if pravdivá, provede se příkaz, který následuje za podmínkou. Pokud je podmínka nepravdivá, příkaz v klauzuli if se ignoruje a příkaz provede libovolný příkaz, který je specifikován v klauzuli else .

  • Když se program zastaví, vrátí ukončovací kód. Chcete-li jako podmínky použít ukončovací kódy, použijte parametr errorlevel .

  • Pokud použijete defined, budou do prostředí přidány následující tři proměnné: %errorlevel%, %cmdcmdline%a %cmdextversion%.

    • %errorlevel%: Rozbalí se do řetězcové reprezentace aktuální hodnoty proměnné prostředí ERRORLEVEL. Tato proměnná předpokládá, že ještě neexistuje existující proměnná prostředí s názvem ERRORLEVEL. Pokud je k dispozici, zobrazí se místo toho tato hodnota ERRORLEVEL.

    • %cmdcmdline%: Rozbalí se na původní příkazový řádek, který byl předán Cmd.exe před jakýmkoli zpracováním Cmd.exe. Předpokládá se, že ještě neexistuje existující proměnná prostředí s názvem CMDCMDLINE. Pokud ano, získáte místo toho hodnotu CMDCMDLINE.

    • %cmdextversion%: Rozbalí se do řetězcové reprezentace aktuální hodnoty cmdextversion. Předpokládá se, že ještě neexistuje existující proměnná prostředí s názvem CMDEXTVERSION. Pokud ano, získáte místo toho hodnotu CMDEXTVERSION.

  • Klauzuli else je nutné použít na stejném řádku jako příkaz za if.

Examples

Chcete-li zobrazit zprávu Nelze najít datový soubor, pokud soubor Product.dat nebyl nalezen, zadejte:

if not exist product.dat echo Cannot find data file

Pokud chcete naformátovat disk na jednotce A a zobrazit chybovou zprávu, pokud během procesu formátování dojde k chybě, zadejte do dávkového souboru následující řádky:

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

Pokud chcete odstranit soubor Product.dat z aktuálního adresáře nebo zobrazit zprávu, pokud Product.dat nenajdete, zadejte do dávkového souboru následující řádky:

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

Note

Tyto čáry lze sloučit do jedné čáry následujícím způsobem:

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

Pokud chcete po spuštění dávkového souboru zopakovat hodnotu proměnné prostředí ERRORLEVEL, zadejte do dávkového souboru následující řádky:

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!

Pokud chcete přejít na popisek ok, pokud je hodnota proměnné prostředí ERRORLEVEL menší nebo rovna 1, zadejte:

if %errorlevel% LEQ 1 goto okay