首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过多个PID进行筛选的任务列表

通过多个PID进行筛选的任务列表
EN

Stack Overflow用户
提问于 2016-12-14 08:18:14
回答 2查看 13.6K关注 0票数 7

我正在使用tasklist命令。

我正在尝试使用/fi选项来筛选多个PID。

尝试

tasklist.exe /v /fi "PID eq 3248" /fi "PID eq 9488"

结果

INFO: No tasks are running which match the specified criteria.

这个不工作。我只能假设过滤器是使用逻辑在内部计算的,而且显然永远不会是真的。

问题

如何通过多个PID进行过滤?

丑陋的备选案文1

如果我单独运行它,结果是可以的,我可以设置进程信息。然而,

  • tasklist.exe /v /fi "PID eq 3248"
  • tasklist.exe /v /fi "PID eq 9488"

我想避免激活两个单独的命令。

丑陋的备选案文2

使用find

代码语言:javascript
复制
tasklist.exe /v  | find /i "9488"

这就引出了以下问题:

  1. 如何找到多个PID?
  2. 如何确保找到的字符串实际上是PID,而不是其他任何东西。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-12-14 09:22:21

tasklist无法过滤到多个PID。因此,使用完整的输出并使用另一种方法来筛选:

使用csv作为输出格式;PID为token2,窗口标题为token9。

findstr能够搜索多个字符串(这里用空格分隔)。

/x检查“完整行”,因此45将与3456不匹配。

>nul抑制findstr的输出(我们只需要错误级别,而不是实际输出)

&&的作用是“如果前面的命令(findstr)成功,那么.”

代码语言:javascript
复制
@echo off
for /f "tokens=2,9 delims=," %%a in ('tasklist /v /fo csv') do (
  echo %%~a|findstr /x "3248 9488" >nul && echo %%~a    %%~b
)
票数 4
EN

Stack Overflow用户

发布于 2016-12-14 09:28:11

powershell解决方案

代码语言:javascript
复制
[regex]$Pid='(75068|6712)'
Get-Process |where {$_.mainWindowTItle -and $_.ID -match $Pid} |select ID,MainWIndowtitle

输出

代码语言:javascript
复制
   Id MainWindowTitle
   -- ---------------
75068 cmd - tasklist to filter by multiple PIDs - Stack Overflow - Mozilla Firefox
 6712 VmUbuntu-1604lts [wird ausgeführt] - Oracle VM VirtualBox
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41137783

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档