Điều này có thể không làm việc với start
, như bắt đầu một cửa sổ mới, nhưng để trả lời câu hỏi của bạn:
Nếu lệnh trả về một mức độ lỗi mà bạn có thể kiểm tra những cách sau đây
Bằng cách cụ thể lỗi Cấp
commandhere
if %errorlevel%==131 echo do something
By Nếu Bất kỳ lỗi
commandhere || echo what to do if error level ISN'T 0
By Nếu Không Lỗi
commandhere && echo what to do if error level IS 0
Nếu nó không trả lại một mức độ lỗi nhưng không cung cấp cho đầu ra, bạn có thể bắt nó trong một biến và xác định bởi đầu ra, ví dụ (lưu ý các thẻ và delims chỉ là ví dụ và có khả năng sẽ thất bại với bất kỳ ký tự đặc biệt)
bằng cách phân tích cú pháp đầy đủ Output
for /f "tokens=* delims=" %%a in ('somecommand') do set output=%%a
if %output%==whateveritwouldsayinerror echo error
Hoặc bạn chỉ có thể tìm kiếm một cụm từ duy nhất trong đầu ra như từ Lỗi
bằng cách kiểm tra chuỗi
commandhere | find "Error" || echo There was no error!
commandhere | find "Error" && echo There was an error!
Và thậm chí bạn có thể trộn với nhau (chỉ cần nhớ để thoát |
với ^|
nếu trong tuyên bố for
)
Hy vọng điều này sẽ hữu ích.
Nguồn
2013-02-04 17:33:13
Đây là câu trả lời đúng vì nó rõ ràng hơn là kiểm tra '% errorlevel%' vì [ERRORLEVEL không phải là% ERRORLEVEL%] (https://blogs.msdn.microsoft.com/oldnewthing/20080926-00/?p=20743). – sschuberth