У меня есть следующий пакетный код окон:
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, rmcmd являются реальными, и они найдены, вместо этого qwerty является изобретенным и не должен его находить, поэтому должен печатать "не найден процесс 1" , но это не так, оно всегда печатает 0.
Но я заметил, что если я запустил tasklist | findstr /i qwerty
из приглашения dos, сразу после того, как будет %errorlevel%
= 1.
Какой ответ может быть или лучше?