Compartilhar via


Wait-Process

Aguarda que os processos sejam interrompidos antes de aceitar mais entradas.

Sintaxe

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

Description

O cmdlet aguardar que um ou mais processos em execução sejam interrompidos antes de aceitar a entrada. No console do Windows PowerShell, esse cmdlet suprime o prompt de comando até que os processos sejam interrompidos. Você pode especificar um processo por nome de processo ou PID (ID do processo) ou redirecionar um objeto de processo para de processo de espera.

de processo de espera funciona apenas em processos em execução no computador local.

Exemplos

Exemplo 1: interromper um processo e aguardar

PS C:\> $nid = (Get-Process notepad).id
PS C:\> Stop-Process -Id $nid
PS C:\> Wait-Process -Id $nid

Este exemplo interrompe o processo do Bloco de Notas e aguarda que o processo seja interrompido antes de continuar com o próximo comando.

O primeiro comando usa o cmdlet Get-Process para obter a ID do processo do Bloco de Notas. Ele armazena a ID na variável $nid.

O segundo comando usa o cmdlet Stop-Process para interromper o processo com a ID armazenada em $nid.

O terceiro comando usa de processo de espera para aguardar até que o processo do Bloco de Notas seja interrompido. Ele usa o parâmetro ID de de processo de espera para identificar o processo.

Exemplo 2: Especificando um processo

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

Esses comandos mostram três métodos diferentes de especificar um processo para de processo de espera. O primeiro comando obtém o processo do Bloco de Notas e o armazena na variável $p.

O segundo comando usa o parâmetro ID, o terceiro comando usa o parâmetro Name e o quarto comando usa o parâmetro InputObject.

Esses comandos têm os mesmos resultados e podem ser usados de forma intercambiável.

Exemplo 3: Aguardar processos por um horário especificado

PS C:\> Wait-Process -Name outlook, winword -Timeout 30

Esse comando aguarda 30 segundos para que os processos do Outlook e do Winword sejam interrompidos. Se ambos os processos não forem interrompidos, o cmdlet exibirá um erro de não encerramento e o prompt de comando.

Parâmetros

-Id

Especifica as IDs de processo dos processos. Para especificar várias IDs, use vírgulas para separar as IDs. Para localizar o PID de um processo, digite Get-Process.

Tipo:Int32[]
Aliases:PID, ProcessId
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-InputObject

Especifica os processos enviando objetos de processo. Insira uma variável que contenha os objetos de processo ou digite um comando ou expressão que obtém os objetos de processo, como o cmdlet Get-Process.

Tipo:Process[]
Cargo:Named
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-Name

Especifica os nomes de processo dos processos. Para especificar vários nomes, use vírgulas para separar os nomes. Não há suporte para caracteres curinga.

Tipo:String[]
Aliases:ProcessName
Cargo:0
Valor padrão:None
Obrigatório:True
Aceitar a entrada de pipeline:True
Aceitar caracteres curinga:False

-Timeout

Especifica o tempo máximo, em segundos, que esse cmdlet aguarda que os processos especificados sejam interrompidos. Quando esse intervalo expira, o comando exibe um erro de não encerramento que lista os processos que ainda estão em execução e encerra a espera. Por padrão, não há tempo limite.

Tipo:Int32
Aliases:TimeoutSec
Cargo:1
Valor padrão:None
Obrigatório:False
Aceitar a entrada de pipeline:False
Aceitar caracteres curinga:False

Entradas

Process

Você pode canalizar um objeto de processo para este cmdlet.

Saídas

None

Esse cmdlet não gera nenhuma saída.

Observações

  • Esse cmdlet usa o método WaitForExit da classe System.Diagnostics.Process. Para obter mais informações sobre esse método, consulte o SDK do Microsoft .NET Framework.