You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell使用handle.exe时如何完整提取含空格的进程名

问题原因

直接使用Split(" ")按空格分割字符串时,名称中包含空格的进程会被拆分为多个独立字符串片段,仅过滤*exe后缀只能捕获到进程名的最后一段。

修正代码

首先完善Get-FileHandle函数,跳过handle工具输出的首行版权信息:

function Get-FileHandle ($HPath){
    $handles = handle $HPath | Select-Object -Skip 1
    return $handles
}

提取进程名时使用正则匹配固定分隔标记pid:,完整捕获进程名:

$gethandle = Get-FileHandle "你要查询的目录路径"
foreach ($handle in $gethandle) {
    if ($handle -match '^(?<ProcessName>.+?)\s+pid:') {
        $matches.ProcessName
    }
}

匹配逻辑说明

正则规则^(?<ProcessName>.+?)\s+pid:的含义:

  • ^ 匹配每一行的开头位置
  • (?<ProcessName>.+?) 是非贪婪命名捕获组,匹配进程名字符串
  • \s+pid: 匹配进程名结束后的固定标记(1个或多个空格+pid:字符串),以此作为进程名的结束边界,不管进程名有没有空格都能完整捕获。

运行输出示例

jabra-direct.exe
Creative Cloud.exe
Adobe CEF Helper.exe
brave.exe
brave.exe

内容的提问来源于stack exchange,提问作者Keeran

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 17:36:03