Уровень ошибок в цикле For (пакетные окна)

У меня есть следующий пакетный код Windows:

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%)
)

Но он работает не так, как я ожидал.

Все имена процессов iidbms , iigcc , iigcd , dmfacp , dmfrcp , , , rm реальны, и они найдены, вместо этого qwerty придуман и не должен его найти, поэтому должен вывести «процесс не найден 1» , но это не так, он всегда печатает 0.

Но что Я заметил, что если я запустил список задач | findstr / i qwerty из приглашения dos, сразу после того, как появляется % errorlevel% = 1.

Какой ответ может быть или лучше?

22
задан Tim Abell 27 April 2016 в 19:28
поделиться