2012-12-13 31 views

Trả lời

5

Không trực tiếp nhưng bạn có thể thêm thông tin sau vào mỗi dòng có thứ gì đó để thực thi.

|| goto :error 

Và sau đó xác định lỗi, dừng tập lệnh.

:error 
exit /b %errorlevel% 
+0

Không đẹp như trong bash, nhưng đủ tốt. – mark

+1

+1, nhưng có một giải pháp đơn giản hơn. Xem [câu trả lời của tôi] (http://stackoverflow.com/a/13863374/1012053). – dbenham

13

Giải pháp của Tuim hoạt động nhưng có thể đơn giản hơn.

ERRORLEVEL đã được đặt, do đó không cần GOTO nhãn đặt ERRORLEVEL.

Bạn chỉ có thể sử dụng

yourCommand || exit /b 

Lưu ý rằng exit/b sẽ chỉ thoát khỏi chương trình con hiện tại nếu bạn đang ở giữa một CALL. Kịch bản của bạn sẽ phải thoát từng CALL, từng lớp một, cho đến khi nó đến gốc của tập lệnh. Điều đó sẽ tự động diễn ra miễn là bạn cũng đặt thử nghiệm sau mỗi câu lệnh CALL

call :label || exit /b 

Có thể buộc một tập lệnh lô phải thoát ngay lập tức từ bất kỳ độ sâu CALL nào. Xem How can I exit a batch file from within a function? để biết thêm thông tin. Hãy chắc chắn đọc cả hai câu trả lời. Câu trả lời được chấp nhận có một vài nhược điểm nghiêm trọng.

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