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

如何使用PowerShell通过PID批量终止指定进程并返回终止结果

PowerShell 按条件批量终止进程实现方法

核心参数说明

你提到的类似-v的输出已终止进程详情的效果,不需要自定义flag实现:PowerShell 内置的Stop-Process命令自带-PassThru参数,添加该参数后,命令执行终止操作时会返回所有被成功结束的进程对象,直接输出即可查看哪些进程被终止。

带if判断的标准实现代码

完全对应你给出的伪代码逻辑,可直接运行的代码如下:

# 获取全量进程列表赋值给变量x
$x = Get-Process

# 遍历进程做名称匹配,符合条件的终止并记录结果
$stoppedProcesses = $x | Where-Object {
    # if判断逻辑:进程名为y或z时命中
    if ($_.Name -in @("y", "z")) {
        return $true
    }
    return $false
} | Stop-Process -Force -PassThru

# 格式化输出已终止的进程信息
$stoppedProcesses | Select-Object Id, Name, StartTime, ExitTime | Format-Table -AutoSize

适配场景调整

  • 如果你要针对指定PID列表做判断,只需要把第一步获取进程的命令替换为$x = Get-Process -Id @(123,456,789),括号内替换为你实际要处理的PID即可
  • -Force参数作用是强制终止普通权限无法关闭的系统/高权限进程,不需要可以直接删除
  • 输出字段可按需调整,示例中默认展示进程ID、进程名、启动时间、退出时间,你可以根据需要增删Select-Object后的属性名

注意:PowerShell默认识别的进程名不带.exe后缀,比如要终止记事本程序,进程名填notepad即可,不要写notepad.exe

简写参考

如果不需要显式保留if判断块,也可以用更简洁的过滤写法,执行逻辑和上面完全一致:

$x = Get-Process
$stoppedProcesses = $x | Where-Object Name -in @("y", "z") | Stop-Process -Force -PassThru
$stoppedProcesses

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 01:54:28