tôi có các cửa sổ đang thực thi sau:ERRORLEVEL trong một Đối với loop (cửa sổ batch)
for %%i in (iidbms iigcc iigcd dmfacp dmfrcp rmcmd qwerty) do (
tasklist | findstr /i %%i
echo %errorlevel%
if %errorlevel% == 0 (echo %%i ok process found %errorlevel%)
if %errorlevel% == 1 (echo %%i no process found %errorlevel%)
)
Nhưng nó không hoạt động như tôi mong đợi.
Tất cả tên các quá trình iidbms, iigcc, iigcd, dmfacp, dmfrcp, rmcmd là có thật, và chúng được tìm thấy, thay vì qwerty là một phát minh một và không nên tìm thấy nó, vì vậy nên in "không tìm thấy quá trình 1", nhưng nó không luôn luôn in 0.
Nhưng điều tôi đã lưu ý là nếu tôi chạy tasklist | findstr /i qwerty
từ lời nhắc dos, ngay sau khi có %errorlevel%
= 1.
Câu trả lời nào có thể tốt hơn?
tôi đã đảo ngược trật tự (lần đầu tiên 1 thì 0) nhưng resul là giống nhau – aemme
Nếu bạn không thay đổi mã đã đăng, thì bạn cần một goto sau khi lỗi của bạn 1 để bỏ qua câu lệnh tiếp theo hoặc thay đổi điều kiện của bạn (sử dụng NEQ, v.v.). – JRL
một số ví dụ ...? – aemme