Niezawodny sposób sprawdzenia niezerowego (błędu) kodu powrotu w pliku wsadowym systemu Windows
Istnieje wiele porad dotyczących postępowania z kodami powrotu w plikach wsadowych (za pomocą mechanizmu ERROLEVEL), np.
Uzyskaj kod błędu z pliku wsadowegoERRORLEVEL wewnątrz IFNiektóre porady to zrobićif errorlevel 1 goto somethingbad
, podczas gdy inni zalecają używanie%ERRORLEVEL%
zmienna i użycie==
, EQU
, LSS
, itp. Wydaje się, że są problemy wewnątrzIF
oświadczenia i tak dalej, więc zachęca się do opóźnienia ekspansji, ale wydaje się, że ma własne dziwactwa.
Co jest niezawodne (tj. Solidne, więc będzie działać na prawie każdym systemie z prawie każdym kodem powrotu), aby wiedzieć, czy jest źle (niezerowe) kod został zwrócony?
Moja próbaDla podstawowego użycia, poniższe wydaje się działać poprawnie, aby złapać dowolny niezerowy kod powrotu:
if not errorlevel 0 (
echo error level was nonzero
)