Re: skrypt - sprawdzanie mapowanych zasobów

Autor: j_marek <j_marek_at_USUN_TO.gazeta.pl>
Data: Mon 26 Jun 2006 - 23:49:47 MET DST
Message-ID: <e7pl21$2nln$1@news2.ipartners.pl>
Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=original

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