W wiadomości: e7gi9q$nn8$1@nemesis.news.tpi.pl,
Artur Grdeń <artur.grden_wytnij_to_@_wytnij_to_szewczykvw.pl> napisał(a):
> Artur Grdeń napisał(a):
>> @net use | find /i "lpt" >nul
>> @if errorlevel 1 echo lpt zamapowane
>
> oczywiście powinno było być: @if errorlevel 1 echo lpt NIEzamapowane
Witam!
Ciekawe czy zmienna Errorlevel może być ujemna.
Ja w XP stosuję coś takiego:
if %errorlevel% NEQ 0 echo Jakiś błąd
W przypadku "if errorlevel n polecenie" specyfikacja mówi tak:
Wykonuje polecenie jeśli, zmienna Errolevel jest większa bądź równa od
wartości n.
Czyli "if errorlevel 1" ==>
"if %errorlevel% >= 1" ==>
"if %errorlevel% GEQ 1"
Zatem jeśli kod błędów byłby równy np. -1 to _nie_ zostanie uruchomione
polecenie "echo ...".
Niestety NEQ nie występuje w Windows 98 -- o ile pamiętam.
Może zatem alternatywna sekwencja dla Win98 powinna być taka:
if errorlevel 1 goto Error
if errorlevel 0 goto Success
goto Error
:Error
echo Jakiś błąd
:Success
echo Można działać dalej
Próbuje sprawdzić czy zmienne Errorlevel może być ujemna:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcekernl/html/_wcesdk_Win32_GetExitCodeProcess.asp
Wygląda, że w świecie Win32 API kod błędu nie ma znaku :-) Ale odpowiedź na
to pytanie jest trudna i analiza tego problem wykracza poza ten post. Ale
problem chyba jednak istnieje:
http://groups.google.pl/groups/search?hl=pl&lr=&q=%22negative+errorlevel%22
-- Pozdrawiam, Marek Janaszewski [ j_marek(małpa)gazeta(kropka)pl ] [ == USUN_TO. z adresu == ]Received on Mon Jun 26 23:55:09 2006
To archiwum zostało wygenerowane przez hypermail 2.1.8 : Tue 27 Jun 2006 - 00:42:02 MET DST