Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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ě:
|
| /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