2010-08-10 30 views

cevap

38

"Errorlevel" komutunu isteyeceksiniz gibi görünüyor.

myProgram.exe 
if errorlevel 1 goto somethingbad 
echo Success! 
exit 
:somethingbad 
echo Something Bad Happened. 

Errorlevel denetimi bir eşit büyüktür-ya-çek olarak yapılır, böylece olmayan herhangi 0 çıkış değeri atlamayı tetikleyecek: başarısızlık olmayan bir 0 çıkış kodu yürütülebilir döndürür varsayarsak, böyle bir şey yapmak. Bu nedenle, birden fazla spesifik çıkış değerini kontrol etmeniz gerekiyorsa, önce en yüksek olanı kontrol etmelisiniz.

+2

Ayrıca, Windows 2000 civarında, '==', 'EQU',' LSS' vb. Ile test edilebilen '% ERRORLEVEL%' adlı bir "sanal" ortam değişkeni var. –

+0

Mükemmel! Teşekkürler. – Dlongnecker

+2

Oh, posterity için, hata yapmaktan vazgeçirmek için, sonra: bir şeybad, bir "duraklat" komutu kullanın – Dlongnecker

24

Basit bir başarı/hata kontrolü yapmak için conditional processing symbols'u da kullanabilirsiniz. Örneğin:

myProgram.exe && echo Done! 

myProgram.exe MyProgram.EXE sıfırdan farklı hata seviyesini döndürürse duraklatmak için toplu iş dosyasını neden olacak hata düzeyinde 0.

myProgram.exe || PAUSE 

ile döndü yalnızca Done! basacaktır.

+0

Çok havalı, kompakt ve aslında daha okunabilir – Dlongnecker

+0

derim ki bu çözümlerin daha iyi olduğu konusunda hemfikirim – dmportella

+2

Yani yapabileceğiniz: 'myProgram.exe || komutların geri kalanını durdurmak için/b 1 'çıkın mı? – rakslice

İlgili konular