如何从脚本关闭其他 PowerShell 窗口

问题描述

我有一个 PowerShell 脚本,它具有以下步骤:

  1. 打开另一个 PowerShell 窗口
  2. 导航到 Angular 项目目录
  3. 运行命令为项目提供服务

有没有办法可以关闭所有其他正在运行的 PowerShell 窗口,但保持当前运行的脚本和它新创建的窗口打开?更改后,我希望它的行为如下:

  1. 关闭所有其他 PowerShell 窗口
  2. 打开另一个 PowerShell 窗口
  3. 导航到 Angular 项目目录
  4. 运行命令为项目提供服务

解决方法

有没有办法可以关闭所有其他正在运行的 PowerShell 窗口, 但保留当前正在运行的脚本,它是新创建的窗口 开了吗?

$Previous = Get-process -Name *Powershell*;

{YOUR SCRIPT}

Stop-process $previous
,

您可以使用 $PID 枚举所有正在运行的 powershell 进程,然后通过与 Stop-Process 的值进行比较来过滤掉当前的进程,然后将其余的通过管道输送到 Get-Process powershell |? Id -ne $PID |Stop-Process -Force

$childProcess = Start-Process powershell $childProcArgs -PassThru
Get-Process powershell |? Id -notin @($PID;$childProcess.Id) |Stop-Process -Force

如有必要,您可以通过 ID 包含子进程:

{{1}}

...虽然我建议简单地杀死所有其他powershell实例,然后在

之后启动子进程