/ Forside / Teknologi / Operativsystemer / MS Windows / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
MS Windows
#NavnPoint
Klaudi 76474
o.v.n. 67550
refi 58409
tedd 45557
Manse9933 45149
molokyle 40687
miritdk 38357
briani 27239
BjarneD 26414
10  pallebhan.. 24310
Dos error koder
Fra : Henrik Sahl


Dato : 21-03-04 12:07

Afhængigt af hvilken error kode jeg får vil jeg gøre forskellige ting, men
når jeg tester kan jeg ikke helt se logikken i error koderne.

Eks.:

Biblioteket c:\test eksisterer mens filen c:\test.txt ikke eksisterer, altså
skal begge følgende ting fejle.

del c:\test.txt
echo %errorlevel%

mkdir c:\test
echo %errorlevel%


Problemet er nu blot at sletningen af filen giver "0" mens at oprettelsen af
biblioteket giver "1"
Jeg troede at 0 var godt og alt andet var skidt.

Could Not Find c:\test.txt
0
A subdirectory or file c:\test already exists.
1

Hvorfor giver de ikke begge "1" ?

Mvh
Henrik



 
 
Bertel K. Brander (21-03-2004)
Kommentar
Fra : Bertel K. Brander


Dato : 21-03-04 17:42

Henrik Sahl wrote:
> Afhængigt af hvilken error kode jeg får vil jeg gøre forskellige ting, men
> når jeg tester kan jeg ikke helt se logikken i error koderne.
>
> Eks.:
>
> Biblioteket c:\test eksisterer mens filen c:\test.txt ikke eksisterer, altså
> skal begge følgende ting fejle.
>
> del c:\test.txt
> echo %errorlevel%
>
> mkdir c:\test
> echo %errorlevel%
>
>
> Problemet er nu blot at sletningen af filen giver "0" mens at oprettelsen af
> biblioteket giver "1"
> Jeg troede at 0 var godt og alt andet var skidt.
>
> Could Not Find c:\test.txt
> 0
> A subdirectory or file c:\test already exists.
> 1
>
> Hvorfor giver de ikke begge "1" ?
>

Man kan tilsynladende ikke rigtigt stole på returværdien for del.
Så vidt jeg husker sætter del errorlevel til 1 hvis den fandt en
fil som den ikke kunne slette.

Man kan lave en workaroud i stil med:

del %1 2>&1 |findstr "Could Not Find" >nul 2>&1
if errorlevel 1 (
echo Success
) else (
echo Failure
)

Ideen er at få findstr til at checke om del kommandoen
skriver "Could not find", hvis ikke del gør det vil
findstr sætte errorlevel. %1 er filen der skal slettes.
Man kan også bruge "if exist whatever" før og efter
del til at checke om den gør det den skal.

Scriptet ovenfor vil skrive Success hvis del kan finde
filen, ellers Failure. Det virker måske ikke med på Win9x & ME

/b

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408899
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste