2010-08-10 31 views

Trả lời

38

Có vẻ như bạn sẽ muốn lệnh "If Errorlevel". Giả sử thực thi của bạn trả về một-0 không thoát mã trên thất bại, bạn làm như sau:

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

ERRORLEVEL kiểm tra được thực hiện như một tấm séc lớn hơn-hay-bình đẳng, vì vậy bất kỳ-0 không lối ra giá trị sẽ kích hoạt khi nhảy. Do đó, nếu bạn cần kiểm tra nhiều hơn một giá trị thoát cụ thể, trước tiên bạn nên kiểm tra giá trị cao nhất.

+2

Ngoài ra, kể từ khoảng Windows 2000, có một biến môi trường "ảo" được gọi là '% ERRORLEVEL%' có thể được kiểm tra bằng '==', 'EQU',' LSS', v.v. –

+0

Hoàn hảo! Cảm ơn. – Dlongnecker

+2

Ồ, vì hậu thế, để làm cho nó dừng lại do lỗi, sau: somethingbad, sử dụng lệnh "pause" – Dlongnecker

24

Bạn cũng có thể sử dụng conditional processing symbols để thực hiện kiểm tra thành công/thất bại đơn giản. Ví dụ:

myProgram.exe && echo Done! 

sẽ in Done! chỉ khi myProgram.exe trở lại với mức độ lỗi 0.

myProgram.exe || PAUSE 

sẽ gây ra các tập tin batch để tạm dừng nếu myProgram.exe trả một mức độ lỗi khác không.

+0

Rất mát mẻ, nhỏ gọn, và thực sự dễ đọc hơn Tôi muốn nói – Dlongnecker

+0

Tôi phải đồng ý giải pháp này có vẻ tốt hơn nhiều – dmportella

+2

Vì vậy, bạn có thể làm: 'myProgram.exe || exit/b 1' để dừng các lệnh còn lại? – rakslice

Các vấn đề liên quan