在任务管理器中筛选、查看进程

在 Windows 中,无论是通过 CMD 还是 PowerShell,都能根据命令行关键词检索对应的进程(支持模糊匹配 / 精确匹配),无需手动在任务管理器中筛选。以下是两种常用且可直接执行的方法,附详细步骤和示例:

一、CMD 命令行检索(简单高效,适合快速筛选)

利用 tasklist(列出所有进程)和 findstr(筛选关键词)组合,可根据命令行中的路径、参数等关键词查找进程。

1. 基础语法(模糊匹配)

cmd

复制代码
tasklist /V /FI "IMAGENAME eq 进程名.exe" | findstr "命令行关键词"
  • /V:显示进程的详细信息(包含命令行核心参数);
  • /FI "IMAGENAME eq 进程名.exe":过滤指定进程(如 cmd.exepython.exe,不写则匹配所有进程);
  • findstr "关键词":筛选命令行中包含该关键词的进程(支持中文、路径、参数等)。

2. 实用示例

示例 1:查找所有命令行包含 D:\datapython.exe 进程

cmd

复制代码
tasklist /V /FI "IMAGENAME eq python.exe" | findstr "D:\data"

输出结果(包含 PID、命令行等关键信息):

plaintext

复制代码
python.exe                     1234 Console                    1    500,000 K 运行中    DESKTOP-XXX\用户名    "D:\Python39\python.exe" "D:\data\script.py" --param 123
示例 2:查找命令行包含 run.batcmd.exe 进程

cmd

复制代码
tasklist /V /FI "IMAGENAME eq cmd.exe" | findstr "run.bat"
示例 3:查找所有进程中命令行包含 GraphRAG 的进程(不限进程名)

cmd

复制代码
tasklist /V | findstr "GraphRAG"

3. 精确匹配命令行(可选)

若需精确匹配完整命令行(而非模糊关键词),可结合 findstr /C:"完整命令行"(避免空格拆分关键词):

cmd

复制代码
tasklist /V /FI "IMAGENAME eq python.exe" | findstr /C:"D:\data\script.py --param 123"

二、PowerShell 检索(功能更强,支持复杂筛选)

PowerShell 的 Get-WmiObjectGet-CimInstance 能直接获取进程的完整命令行信息,支持更灵活的筛选(如正则匹配、多关键词组合),适合复杂场景。

1. 基础语法(模糊匹配)

powershell

复制代码
# 方法1:使用 Get-WmiObject(兼容 Windows 10/11)
Get-WmiObject Win32_Process | Where-Object { $_.CommandLine -match "命令行关键词" } | Select-Object ProcessId, Name, CommandLine

# 方法2:使用 Get-CimInstance(更现代,推荐)
Get-CimInstance Win32_Process | Where-Object { $_.CommandLine -match "命令行关键词" } | Select-Object ProcessId, Name, CommandLine
  • ProcessId:进程 PID(用于后续结束进程等操作);
  • Name:进程名(如 cmd.exepython.exe);
  • CommandLine:完整命令行(包含路径和参数);
  • -match:支持正则表达式(模糊匹配,若需精确匹配用 -eq)。

2. 实用示例

示例 1:查找命令行包含 D:\data--param 的 Python 进程

powershell

复制代码
Get-CimInstance Win32_Process | Where-Object { 
    $_.Name -eq "python.exe" -and $_.CommandLine -match "D:\data" -and $_.CommandLine -match "--param" 
} | Select-Object ProcessId, Name, CommandLine
示例 2:正则匹配命令行以 D:\tools 开头的 cmd.exe 进程

powershell

复制代码
Get-CimInstance Win32_Process | Where-Object { 
    $_.Name -eq "cmd.exe" -and $_.CommandLine -match "^D:\\tools" 
} | Select-Object ProcessId, CommandLine

(注:PowerShell 中路径分隔符需用 \\ 转义,或用单引号 'D:\tools'

示例 3:导出匹配结果到文件(便于后续分析)

powershell

复制代码
Get-CimInstance Win32_Process | Where-Object { $_.CommandLine -match "GraphRAG" } | 
Select-Object ProcessId, Name, CommandLine | 
Export-Csv -Path "D:\process_search_result.csv" -Encoding UTF8 -NoTypeInformation

3. 快速结束找到的进程(可选)

若需终止检索到的进程,可直接在筛选后添加 Stop-Process

powershell

复制代码
# 查找并强制结束命令行包含 `old_script.py` 的 Python 进程
Get-CimInstance Win32_Process | Where-Object { $_.CommandLine -match "old_script.py" } | 
Stop-Process -Force

三、关键说明与注意事项

  1. 管理员权限:部分系统进程或其他用户启动的进程,需要以「管理员身份」运行 CMD/PowerShell 才能检索到(右键 CMD/PowerShell 图标 →「以管理员身份运行」)。
  2. 关键词匹配规则
    • 模糊匹配:直接输入关键词(如 datascript.py),会匹配所有包含该关键词的命令行;
    • 精确匹配:PowerShell 中用 -eq "完整命令行"(需包含引号、路径、参数,完全一致才会匹配);
    • 正则匹配:PowerShell 的 -match 支持正则(如 ^D:\\ 匹配以 D:\ 开头的路径)。
  3. 进程名过滤 :若不限定进程名,会遍历所有进程(速度稍慢),建议尽量指定进程名(如 cmd.exepython.exe)提升检索速度。

四、总结(快速选择方案)

场景 推荐工具 核心命令示例
快速模糊筛选(简单关键词) CMD `tasklist /V /FI "IMAGENAME eq python.exe" findstr "D:\data"`
复杂筛选(多关键词 / 正则 / 导出) PowerShell `Get-CimInstance Win32_Process Where-Object { $_.CommandLine -match "GraphRAG" } Select-Object ProcessId, CommandLine`

直接复制对应命令,替换「进程名」和「命令行关键词」即可使用,无需额外配置,适合 Windows 下快速定位进程!

方案 1:查找所有进程中命令行包含 docker commit 的进程(最通用)

cmd

复制代码
tasklist /V | findstr /i "docker commit"

方案 2:仅查找 cmd.exe 进程中包含 docker commit 的进程(更精准)

cmd

复制代码
tasklist /V /FI "IMAGENAME eq cmd.exe" | findstr /i "docker commit"
相关推荐
jbtianci21 小时前
Spring Boot管理用户数据
java·spring boot·后端
Sylvia-girl21 小时前
线程池~~
java·开发语言
fie888921 小时前
基于MATLAB的转子动力学建模与仿真实现(含碰摩、不平衡激励)
开发语言·算法·matlab
lly20240621 小时前
C# 变量作用域
开发语言
魔力军21 小时前
Rust学习Day3: 3个小demo实现
java·学习·rust
时艰.21 小时前
java性能调优 — 高并发缓存一致性
java·开发语言·缓存
落花流水 丶21 小时前
Java 多线程完全指南
java
MSTcheng.21 小时前
【C++】C++智能指针
开发语言·c++·智能指针
无小道21 小时前
Qt——网络编程
开发语言·qt
wazmlp00188736921 小时前
第五次python作业
服务器·开发语言·python