Compartilhar via


Wait-Process

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

Sintaxe

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>]

Description

Esse cmdlet não funciona no Linux ou no macOS.

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

Wait-Process funciona apenas em processos em execução no computador local.

Exemplos

Exemplo 1: Parar um processo e aguardar

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

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

O Get-Process cmdlet obtém a ID do processo do Bloco de Notas e a armazena na $nid variável. Stop-Process interrompe o processo com o ID armazenado no $nid. Wait-Process aguarda até que o processo do Bloco de Notas seja interrompido.

Exemplo 2: Especificando um processo

Este exemplo mostra três métodos diferentes de especificação de um processo para Wait-Process. O primeiro comando obtém o processo do Bloco de Notas e o armazena na $p variável. 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 .

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

Esses comandos têm os mesmos resultados e podem ser usados alternadamente.

Exemplo 3: Aguardar processos por um tempo especificado

Neste exemplo, Wait-Process 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 finalização e o prompt de comando.

Wait-Process -Name outlook, winword -Timeout 30

Parâmetros

-Any

Quando vários processos são passados para Wait-Processo , o cmdlet aguarda a saída de todos os processos antes de retornar. Com esse parâmetro, o cmdlet retorna quando qualquer um dos processos é encerrado. Os processos restantes continuam a ser executados.

Esse parâmetro foi adicionado no PowerShell 7.4.

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

-Id

Especifica as identificações de processos dos processos. Para especificar IDs múltiplas, use vírgulas para separá-las. 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 obtenha os objetos de processo, como o Get-Process cmdlet.

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

-PassThru

Por padrão, esse cmdlet não gera nada. Com esse parâmetro, o cmdlet retorna objetos que representam os processos que foram aguardados.

Esse parâmetro foi adicionado no PowerShell 7.4.

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

-Timeout

Especifica o tempo máximo, em segundos, que esse cmdlet aguarda a interrupção dos processos especificados. Quando esse intervalo expira, o comando exibirá um erro de não finalização que lista os processos que estão em execução e termina 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 esse cmdlet.

Saídas

None

Por padrão, esse cmdlet não retorna nenhuma saída.

Process

O cmdlet retorna objetos de processo quando você usa o parâmetro PassThru .

Observações

  • Esse cmdlet usa o método WaitForExit da classe System.Diagnostics.Process .

  • Ao contrário Start-Process -Waitdo , Wait-Process aguarda apenas os processos identificados. Start-Process -Wait Aguarda a saída da árvore de processos (o processo e todos os seus descendentes) antes de retornar o controle.