Wait-Process
等到进程停止后再接受更多输入。
语法
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Wait-Process
[[-Timeout] <Int32>]
-InputObject <Process[]>
[<CommonParameters>]
说明
此 cmdlet 在 Linux 或 macOS 上不起作用。
Wait-Process
cmdlet 等到一个或多个运行的进程停止后再接受输入。 在 PowerShell 控制台中,此 cmdlet 禁止显示命令提示符,直到进程停止。 可以通过进程名称或进程 ID (PID) 来指定进程,也可以通过管道将进程对象传递给 Wait-Process
。
Wait-Process
仅对在本地计算机上运行的进程有效。
示例
示例 1:停止进程并等待
此示例停止 Notepad 进程,然后等到该进程停止后,再继续下一个命令。
$nid = (Get-Process notepad).id
Stop-Process -Id $nid
Wait-Process -Id $nid
Get-Process
cmdlet 获取 Notepad 进程的进程 ID,并将其存储在 $nid
变量中。 Stop-Process
停止 ID 存储在 $nid
中的进程。 Wait-Process
等待 Notepad 进程停止。
示例 2:指定进程
此示例演示了三种不同的方法来指定要 Wait-Process
的进程。 第一个命令获取 Notepad 进程并将它存储在 $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 秒的时间等待 Outlook 和 Winword 进程停止。 如果这两个进程均未停止,则该 cmdlet 会显示非终止错误以及命令提示符。
Wait-Process -Name outlook, winword -Timeout 30
参数
-Id
指定进程的进程 ID。 若要指定多个 ID,请使用逗号分隔 ID。
若要查找进程的 PID,请键入 Get-Process
。
Type: | Int32[] |
Aliases: | PID, ProcessId |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InputObject
通过提交进程对象来指定进程。 输入包含进程对象的变量,或键入获取进程对象的命令或表达式(如 Get-Process
cmdlet)。
Type: | Process[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
指定进程的进程名称。 若要指定多个名称,请使用逗号分隔这些名称。 不支持通配符。
Type: | String[] |
Aliases: | ProcessName |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Timeout
指定此 cmdlet 等待指定进程停止的最长时间,以秒为单位。 当此时间间隔到期时,该命令会显示一个非终止错误(列出仍在运行的进程)并结束等待。 默认情况下没有任何超时。
Type: | Int32 |
Aliases: | TimeoutSec |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
输入
可以将进程对象通过管道传递给此 cmdlet。
输出
None
此 cmdlet 不返回任何输出。
备注
此 cmdlet 使用 System.Diagnostics.Process 类的 WaitForExit 方法。
与
Start-Process -Wait
不同,Wait-Process
只等待标识的进程。Start-Process -Wait
等待进程树(进程及其所有后代)在返回控件之前退出。
相关链接
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈