Wait-Process
等待进程停止,然后再接受更多输入。
语法
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Wait-Process
[[-Timeout] <Int32>]
-InputObject <Process[]>
[<CommonParameters>]
说明
Wait-Process
cmdlet 等待一个或多个正在运行的进程在接受输入之前停止。 在 PowerShell 控制台中,此 cmdlet 将禁止命令提示符,直到进程停止。 可以按进程名称或进程 ID(PID)指定进程,也可以通过管道将进程对象传递给 Wait-Process
。
Wait-Process
仅适用于在本地计算机上运行的进程。
示例
示例 1:停止进程并等待
PS C:\> $nid = (Get-Process notepad).Id
PS C:\> Stop-Process -Id $nid
PS C:\> Wait-Process -Id $nid
本示例停止记事本进程,然后等待进程停止,然后再继续下一个命令。
第一个命令使用 Get-Process
cmdlet 获取记事本进程的 ID。 它将 ID 存储在 $nid
变量中。
第二个命令使用 Stop-Process
cmdlet 停止 $nid
中存储的 ID 的进程。
第三个命令使用 Wait-Process
等待记事本进程停止。 它使用 的 Wait-Process
参数来标识进程。
示例 2:指定进程
PS C:\> $p = Get-Process notepad
PS C:\> Wait-Process -Id $p.Id
PS C:\> Wait-Process -Name "notepad"
PS C:\> Wait-Process -InputObject $p
这些命令显示了三种不同的方法来指定要 Wait-Process
的进程。 第一个命令获取记事本进程并将其存储在 $p
变量中。
第二个命令使用 Id 参数,第三个命令使用 Name 参数,第四个命令使用 InputObject 参数。
这些命令具有相同的结果,可以互换使用。
示例 3:等待指定时间的进程
PS C:\> Wait-Process -Name outlook, winword -Timeout 30
此命令等待 30 秒,Outlook 和 Winword 进程停止。 如果未停止这两个进程,则 cmdlet 将显示非终止错误和命令提示符。
参数
-Id
指定进程的进程 ID。 若要指定多个 ID,请使用逗号分隔 ID。
若要查找进程的 PID,请键入 Get-Process
。
类型: | Int32[] |
别名: | PID, ProcessId |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-InputObject
通过提交进程对象指定进程。 输入包含进程对象的变量,或键入获取进程对象的命令或表达式,例如 Get-Process
cmdlet。
类型: | Process[] |
Position: | Named |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-Name
指定进程的进程名称。 若要指定多个名称,请使用逗号分隔名称。 不支持通配符。
类型: | String[] |
别名: | ProcessName |
Position: | 0 |
默认值: | None |
必需: | True |
接受管道输入: | True |
接受通配符: | False |
-Timeout
指定此 cmdlet 等待指定进程停止的最长时间(以秒为单位)。 此间隔到期时,该命令会显示一个非终止错误,其中列出了仍在运行的进程,并结束等待。 默认情况下,没有超时。
类型: | Int32 |
别名: | TimeoutSec |
Position: | 1 |
默认值: | None |
必需: | False |
接受管道输入: | False |
接受通配符: | False |
输入
可以通过管道将进程对象传递给此 cmdlet。
输出
None
此 cmdlet 不返回任何输出。
备注
此 cmdlet 使用 System.Diagnostics.Process 类的 WaitForExit 方法。
与
Start-Process -Wait
不同,Wait-Process
只等待标识的进程。Start-Process -Wait
等待进程树(进程及其所有后代)在返回控件之前退出。