Wait-Process
等到进程停止后再接受更多输入。
语法
Wait-Process [-Id] <Int32[]> [[-Timeout] <int>] [<CommonParameters>]
Wait-Process -InputObject <Process[]> [[-Timeout] <int>] [<CommonParameters>]
Wait-Process [-Name] <string[]> [[-Timeout] <int>] [<CommonParameters>]
说明
Wait-Process cmdlet 等到一个或多个运行的进程停止后再接受输入。在 Windows PowerShell 控制台中,此 cmdlet 禁止显示命令提示符,直到进程停止。可以通过进程名称或进程 ID (PID) 来指定进程,也可以通过管道将进程对象传递给 Wait-Process。
Wait-Process 仅对在本地计算机上运行的进程有效。
参数
-Id <Int32[]>
指定进程的进程 ID。若要指定多个 ID,请使用逗号分隔 ID。要查找进程的 PID,请键入“get-process”。参数名(“Id”)为可选项。
是否为必需? |
true |
位置? |
1 |
默认值 |
|
是否接受管道输入? |
true (ByPropertyName) |
是否接受通配符? |
false |
-InputObject <Process[]>
通过提交进程对象来指定进程。请输入包含进程对象的变量,或键入获取进程对象的命令或表达式(如 Get-Process 命令)。
是否为必需? |
true |
位置? |
named |
默认值 |
|
是否接受管道输入? |
true (ByValue) |
是否接受通配符? |
false |
-Name <string[]>
指定进程的进程名称。若要指定多个名称,请使用逗号分隔这些名称。
是否为必需? |
true |
位置? |
1 |
默认值 |
|
是否接受管道输入? |
true (ByPropertyName) |
是否接受通配符? |
false |
-Timeout <int>
确定 Wait-Process 等待指定进程停止的最长时间,以秒为单位。当此时间间隔到期时,该命令会显示一个非终止错误(列出仍在运行的进程)并结束等待。
是否为必需? |
false |
位置? |
2 |
默认值 |
|
是否接受管道输入? |
false |
是否接受通配符? |
false |
<CommonParameters>
此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.
输入和输出
输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。
输入 |
System.Diagnostics.Process 可以将进程对象通过管道传递给 Wait-Process。 |
输出 |
无 此 cmdlet 将不产生任何输出。 |
说明
此 cmdlet 使用 System.Diagnostics.Process 类的 WaitForExit 方法。有关该方法的详细信息,请参阅 Microsoft .NET Framework SDK。
示例 1
C:\PS>$nid = (get-process notepad).id
C:\PS> stop-process -id $nid
C:\PS> wait-process -id $nid
说明
-----------
这些命令停止 Notepad 进程,然后等到该进程停止后,再继续下一个命令。
第一条命令使用 Get-Process cmdlet 获取 Notepad 进程的 ID。它将该 ID 保存在 $nid 变量中。
第二条命令使用 Stop-Process cmdlet 停止具有保存在 $nid 中的 ID 的进程。
第三条命令使用 Wait-Process cmdlet 等待 Notepad 进程停止。它使用 Wait-Process 的 ID 参数标识该进程。
示例 2
C:\PS>$p = get-process notepad
C:\PS> wait-process -id $p.id
C:\PS> wait-process -name notepad
C:\PS> wait-process -inputobject $p
说明
-----------
这些命令演示了为 Wait-Process cmdlet 指定进程的三种不同方法。第一条命令获取 Notepad 进程并将其保存在 $p 变量中。
第二条命令使用 ID 参数,第三条命令使用 Name 参数,第四条命令使用 InputObject 参数。
这些命令的结果相同,因此可以互换。
示例 3
C:\PS>wait-process -name outlook, winword -timeout 30
说明
-----------
此命令用 30 秒的时间等待 Outlook 和 Winword 进程停止。如果这两个进程均未停止,则该 cmdlet 会显示非终止错误以及命令提示符。
另请参阅
概念
Get-Process
Start-Process
Stop-Process
Wait-Process
Debug-Process