当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Wait-Process (Microsoft.PowerShell.Management)

作者:精品下载站 日期:2024-12-14 02:09:49 浏览:16 分类:玩电脑

Wait-Process (Microsoft.PowerShell.Management)


Wait-Process

模块 :Microsoft.PowerShell.Management

等待进程停止后再接受更多输入。

句法

Wait-Process
    [-Name] <String[]>
    [[-Timeout] <Int32>]
    [-Any]
    [-PassThru]
    [<CommonParameters>]
Wait-Process
    [-Id] <Int32[]>
    [[-Timeout] <Int32>]
    [-Any]
    [-PassThru]
    [<CommonParameters>]
Wait-Process
    [[-Timeout] <Int32>]
    [-Any]
    [-PassThru]
    -InputObject <Process[]>
    [<CommonParameters>]

描述

此 cmdlet 不适用于 Linux 或 macOS。

Wait-Process cmdlet 等待一个或多个正在运行的进程停止,然后再接受输入。在 PowerShell 控制台中,此 cmdlet 会抑制命令提示符,直到进程停止。您可以通过进程名称或进程 ID (PID) 指定进程,或通过管道将进程对象传递给 Wait-Process

Wait-Process 仅适用于本地计算机上运行的进程。

示例

示例 1:停止进程并等待

此示例停止 记事本 进程,然后等待该进程停止,然后再继续执行下一个命令。

$nid = (Get-Process notepad).id
Stop-Process -Id $nid
Wait-Process -Id $nid

Get-Process cmdlet 获取 Notepad 进程的进程 ID,并将其存储在 $nid 变量中。 Stop-Process 使用存储在 $nid 中的 ID 停止进程。 Wait-Process 等待 Notepad 进程停止。

示例 2:指定进程

此示例显示了将进程指定为 Wait-Process 的三种不同方法。第一个命令获取记事本进程并将其存储在 $p 变量中。第二个命令使用 Id 参数,第三个命令使用 Name 参数,第四个命令使用 InputObject 参数。

$p = Get-Process notepad
Wait-Process -Id $p.id
Wait-Process -Name "notepad"
Wait-Process -InputObject $p

这些命令具有相同的结果并且可以互换使用。

示例3:等待进程指定时间

在此示例中,Wait-Process 等待 30 秒,以便 OutlookWinword 进程停止。如果两个进程均未停止,则 cmdlet 将显示非终止错误和命令提示符。

Wait-Process -Name outlook, winword -Timeout 30

参数

-Any

当多个进程传递到 Wait-Process 时,cmdlet 会等待所有进程退出然后再返回。使用此参数,cmdlet 将在任何进程退出时返回。其余进程继续运行。

此参数是在 PowerShell 7.4 中添加的。

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Id

指定进程的进程 ID。要指定多个 ID,请使用逗号分隔 ID。要查找进程的 PID,请输入 Get-Process

类型 :

Int32[]

别名:

PID, ProcessId

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-InputObject

通过提交进程对象来指定进程。输入包含流程对象的变量,或键入获取流程对象的命令或表达式,例如 Get-Process cmdlet。

类型 :

过程[]

位置:

命名

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-Name

指定进程的进程名称。要指定多个名称,请使用逗号分隔名称。不支持通配符。

类型 :

String[]

别名:

ProcessName

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-PassThru

默认情况下,此 cmdlet 不输出任何内容。使用此参数,cmdlet 返回表示所等待的进程的对象。

此参数是在 PowerShell 7.4 中添加的。

类型 :

SwitchParameter

位置:

命名

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

-Timeout

指定此 cmdlet 等待指定进程停止的最长时间(以秒为单位)。当此间隔到期时,该命令会显示一个非终止错误,列出仍在运行的进程,并结束等待。默认情况下,没有超时。

类型 :

整数32

别名:

TimeoutSec

位置:

1

默认值:

None

必需的:

False

接受管道输入:

False

接受通配符:

False

输入

流程

您可以通过管道将进程对象传递给此 cmdlet。

输出

默认情况下,此 cmdlet 不返回任何输出。

流程

当您使用 PassThru 参数时,cmdlet 将返回进程对象。

笔记

  • 此 cmdlet 使用 System.Diagnostics.Process 类的 WaitForExit 方法。

  • Start-Process -Wait 不同,Wait-Process 仅等待已识别的进程。 Start-Process -Wait 等待进程树(进程及其所有子进程)退出,然后返回控制权。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯