DOS - INSTRUKCJA WARUNKOWA ERRORLEVEL ... Nie ogarniam tego ... Prosze o wytłumaczenie
Schooldayz
Każda funkcja jakiej używasz zwraca swój kod wynikowy, zobacz poniższy kod
@ECHO OFF ECHO Sprawdzanie czy istnieje plik askjdba.txt if exist askjdba.txt ( echo Plik istnieje, kod bledu: %ERRORLEVEL% ) else( echo Plik nie istnieje, kod bledu: %ERRORLEVEL% )
W moim przypadku plik istnieje, a kod błędu to 9009 - coś mi tu nie pasuje, bo kod powinien wynosić 0 (kod sukcesu). Zaczynam więc goglować i po ciężkiej dramaturgii poprawiam kod na taki, by błędy dotyczyły aktualnie wykonywanego miejsca w kodzie (nie wiem skąd się wziął kod 9009, ale na pewno nie taki powinien zostać zwrócony)
@ECHO OFF setlocal enabledelayedexpansion ECHO Sprawdzanie czy istnieje plik askjdba.txt if exist askjdba.txt ( echo Plik istnieje, kod bledu: !ERRORLEVEL! ) else ( echo Plik nie istnieje, kod bledu: !ERRORLEVEL! )
Dałem praktyczny przykład z życia wzięty (sprzed ostatnich 30 minut), że używanie ERRORLEVEL pokazuje stan wykonania poprzedniej operacji, co przydaje się w analizie poprawności kodu. Korzystasz z programu i nie wiesz czemu nie działa? Patrzysz kod błędu, szukasz w necie tego kodu a następnie poprawiasz program. Proste
Czasem kod który działa nie zawsze zachowuje się prawidłowo, to wymaga wprawy. Do korzystania z takich funkcji jak ERRORLEVEL trzeba przeczytać jej opis w necie bo inaczej powstanie taka kappa jak moje fałszywe błędy w stylu 9009
@ECHO OFF
ECHO Sprawdzanie czy istnieje plik askjdba.txt
if exist askjdba.txt (
echo Plik istnieje, kod bledu: %ERRORLEVEL%
) else (
echo Plik nie istnieje, kod bledu: %ERRORLEVEL%
)
W moim przypadku plik istnieje, a kod błędu to 9009 - coś mi tu nie pasuje, bo kod powinien wynosić 0 (kod sukcesu). Zaczynam więc goglować i po ciężkiej dramaturgii poprawiam kod na taki, by błędy dotyczyły aktualnie wykonywanego miejsca w kodzie (nie wiem skąd się wziął kod 9009, ale na pewno nie taki powinien zostać zwrócony)
@ECHO OFF
setlocal enabledelayedexpansion
ECHO Sprawdzanie czy istnieje plik askjdba.txt
if exist askjdba.txt (
echo Plik istnieje, kod bledu: !ERRORLEVEL!
) else (
echo Plik nie istnieje, kod bledu: !ERRORLEVEL!
)
Dałem praktyczny przykład z życia wzięty (sprzed ostatnich 30 minut), że używanie ERRORLEVEL pokazuje stan wykonania poprzedniej operacji, co przydaje się w analizie poprawności kodu. Korzystasz z programu i nie wiesz czemu nie działa? Patrzysz kod błędu, szukasz w necie tego kodu a następnie poprawiasz program. Proste
Czasem kod który działa nie zawsze zachowuje się prawidłowo, to wymaga wprawy. Do korzystania z takich funkcji jak ERRORLEVEL trzeba przeczytać jej opis w necie bo inaczej powstanie taka kappa jak moje fałszywe błędy w stylu 9009