批处理文件中的任务列表退出状态?

use*_*114 4 file status batch-file tasklist exit

我正在批处理文件中的标签中执行以下命令:tasklist.exe/FI"USERNAME eq%USERDOMAIN%\%USERNAME%"/ FI"IMAGENAME eq%1"/ FI"PID eq%2"2> nul && echo errorl:%ERRORLEVEL%

%1是进程运行,%2是其PID.即使进程及其PID匹配或不匹配,我在o/p中得到"errorl:1".

我不确定这里有什么不对.任何的想法?

Bil*_*ill 9

您可以通过find命令管道任务列表并从中获取错误级别.

例:

tasklist | find "firefox.exe"
echo Error level = %ERRORLEVEL%

REM If firefox is running, the errorlevel is set to 0
REM If firefox is not running, errorlevel is set to 1
Run Code Online (Sandbox Code Playgroud)


jeb*_*jeb 6

在我看来,你根本不能使用errorlevel,
因为即使找不到pid ,tasklist总是返回0.

我想,你必须解析tasklist的输出.

@echo off
setlocal enableDelayedExpansion

set "cmd=tasklist.exe /FI "USERNAME eq %USERDOMAIN%\%USERNAME%" /FI "IMAGENAME eq %1" /FI "PID eq %2""

for /F "delims=*" %%p in ('!cmd! ^| findstr "%2" ') do (
  echo found %%p
)
Run Code Online (Sandbox Code Playgroud)