Opravte testovací Priorita hodnoty parametru ERRORLEVEL při dávkového souboru

Prohlášení o odmítnutí odpovědnosti pro už nepodporovaný obsah KB

Tento článek byl napsán pro produkty, ke kterým již Microsoft nadále nenabízí podporu. Článek je tedy poskytován „tak, jak je“ a nebude už nadále aktualizován.

Souhrn

Při použití více příkazů IF ERRORLEVEL v dávkovém souboru, je důležité pořadí, ve kterém jsou hodnoty parametru ERRORLEVEL při testování číselně. Správné pořadí sestupné (nejvyšší k nejnižší). Toto řazení je způsob, jakým jsou hodnoty parametru ERRORLEVEL při zkoušce. Podmínka IF nastavena na hodnotu TRUE, pokud bude hodnota ERRORLEVEL je rovna nebo větší než hodnota ERRORLEVEL číslo.

Další informace

Následující dávkový soubor fragment ukazuje toto nesprávné chování:

   rem (execute a program which returns an errorlevel of 0 or 1)   if errorlevel 0 goto ZERO
if errorlevel 1 goto ONE
goto END
:ZERO
echo a Zero was returned!
goto END
:ONE
echo a One was returned!
:END

Výše uvedený příklad vždy rozvětven do "Nula" popisek, bez ohledu na úspěch nebo neúspěch. V tomto příkladu by fungovat správně, pokud je proměnná ERRORLEVEL testování bylo provedeno v sestupném pořadí.


SPRÁVNÝ způsob zápisu dávkového souboru je následující:
   rem (execute a program which returns an errorlevel of 0 or 1)   if errorlevel 1 goto ONE
if errorlevel 0 goto ZERO
goto END
:ZERO
echo a Zero was returned!
goto END
:ONE
echo a One was returned!
:END

Vlastnosti

ID článku: 39585 - Poslední kontrola: 16. 1. 2017 - Revize: 1

Váš názor