我有以下的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, rmcmd 都是真实存在的,它们都能够被找到。相反,qwerty 是一个虚构的进程名称,不应该被找到,因此应该打印出" no process found 1",但实际上它并没有打印出来,而总是打印0。
但我已经注意到,如果我在 DOS 提示符下运行 tasklist | findstr /i qwerty
,紧接着就会发现 %errorlevel%
= 1。
有什么样的答案可能会更好呢?