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

PowerShell中用Get-ProcessByName拆分Python/JAVA脚本进程并导出CSV

我来帮你搞定这个问题!核心问题是Get-Process返回的进程对象里,脚本名称其实藏在CommandLine属性里,而不是直接绑定在ProcessName上。我们需要逐个解析每个进程的命令行,提取出对应的脚本/程序名称,然后为每个进程生成独立的条目,最后导出到CSV就能实现一行一个脚本的效果了。

完整解决方案代码

# 处理Python进程:提取脚本名称并生成独立条目
$pythonProcesses = Get-Process python, python3 -ErrorAction SilentlyContinue | ForEach-Object {
    $cmdLine = $_.CommandLine
    # 用正则匹配命令行中的脚本名称(兼容带引号和不带引号的情况)
    if ($cmdLine -match 'python(?:3)?\.exe\s+("?)([^"\s]+)\1') {
        $scriptName = $matches[2]
    } else {
        # 处理交互式Python或无脚本的特殊情况
        $scriptName = "Interactive Python Session"
    }
    # 生成自定义对象,每个进程对应一个对象(即CSV的一行)
    [PSCustomObject]@{
        ProcessType = "Python"
        ScriptName  = $scriptName
        PID         = $_.Id
        ProcessName = $_.ProcessName
    }
}

# 处理Java进程:提取jar包或主类名称
$javaProcesses = Get-Process java -ErrorAction SilentlyContinue | ForEach-Object {
    $cmdLine = $_.CommandLine
    # 优先匹配jar包
    if ($cmdLine -match '-jar\s+("?)([^"\s]+)\1') {
        $scriptName = $matches[2]
    }
    # 再匹配主类名(自动补充.class后缀方便识别)
    elseif ($cmdLine -match 'java\.exe\s+("?)([^"\s]+)\1') {
        $scriptName = $matches[2] + ".class"
    } else {
        $scriptName = "Unknown Java Process"
    }
    [PSCustomObject]@{
        ProcessType = "Java"
        ScriptName  = $scriptName
        PID         = $_.Id
        ProcessName = $_.ProcessName
    }
}

# 合并进程列表并导出到CSV
($pythonProcesses + $javaProcesses) | Export-Csv -Path "ProcessMonitor.csv" -NoTypeInformation -Encoding UTF8

关键逻辑说明

  1. 逐个处理进程:用ForEach-Object遍历每个Python/Java进程,确保每个进程生成一个独立的自定义对象,对应CSV里的一行。
  2. 命令行解析:通过正则表达式从进程的CommandLine属性中精准提取脚本/jar/类名,兼容带引号和不带引号的命令行格式。
  3. 异常情况处理:针对交互式Python、无明确脚本的Java进程做了兜底,避免CSV出现空值或混乱条目。
  4. CSV导出优化:用-NoTypeInformation去掉CSV开头的冗余类型信息,-Encoding UTF8保证中文脚本名不会乱码。

注意事项

  • 如果你的Python可执行文件是py.exe而非python.exe,需要调整正则中的匹配字符串;
  • 部分进程的CommandLine属性需要管理员权限才能读取,若获取不到可以尝试以管理员身份运行PowerShell;
  • Java的命令行参数可能更复杂(比如前置的-D参数),可以根据实际情况修改正则匹配规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:46:28