» »

[CMD.exe]Kak ujeti napako pri presumerjenem stdout ?

[CMD.exe]Kak ujeti napako pri presumerjenem stdout ?

MrStein ::

V skripti imam:
nek_ukaz parametri > neka_mapa\fajl


Če neka_mapa ne obstaja, se izpiše :
The system cannot find the path specified.

Ampak ERRORLEVEL ostane 0.

Kak to v skripti ujeti, da se je zgodila napaka ?

Preveriti, če se je fajl skreiral ?
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!

fiction ::

C:\Documents and Settings\Gregor>echo a > foo
C:\Documents and Settings\Gregor>echo %ERRORLEVEL%
0
C:\Documents and Settings\Gregor>echo a > foo\bar
The system cannot find the path specified.
C:\Documents and Settings\Gregor>echo %ERRORLEVEL%
0

Ok, znam reproducirat problem. File redirection ocitno ne nastavi ERRORLEVEL.
C:\Documents and Settings\Gregor>cmd.exe /c "echo a > foo"
C:\Documents and Settings\Gregor>echo %ERRORLEVEL%
0
C:\Documents and Settings\Gregor>cmd.exe /c "echo a > foo\bar"
The system cannot find the path specified.
C:\Documents and Settings\Gregor>echo %ERRORLEVEL%
1
Ce vse skupaj izvedes v subshellu in se tisti cmd.exe konca pa dobis pravilen rezultat.

MrStein ::

Zakaj preprosto, če lahko komplicirano ? ;)
In eni to celo imajo za plus...

No ja, hvala.
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

100% CPU ves čas!

Oddelek: Pomoč in nasveti
51368 (1211) djforever
»

ping težava s start /run meniju

Oddelek: Pomoč in nasveti
5938 (850) Duhec
»

MSN datoteke čez 6GB

Oddelek: Programska oprema
51650 (1467) Vuli
»

noče odstraniti exe.ikone

Oddelek: Pomoč in nasveti
8801 (700) TeraSonic++
»

win2k uporabniki

Oddelek: Programska oprema
11906 (789) CWIZO

Več podobnih tem