Partilhar via


Wait-Process

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

Sintaxe

Name (Predefinição)

Wait-Process
    [-Name] <String[]>
    [[-Timeout] <Int32>]
    [-Any]
    [-PassThru]
    [<CommonParameters>]

Id

Wait-Process
    [-Id] <Int32[]>
    [[-Timeout] <Int32>]
    [-Any]
    [-PassThru]
    [<CommonParameters>]

InputObject

Wait-Process
    [[-Timeout] <Int32>]
    -InputObject <Process[]>
    [-Any]
    [-PassThru]
    [<CommonParameters>]

Description

Este cmdlet não funciona no Linux ou macOS.

O cmdlet Wait-Process 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 de 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 cmdlet Get-Process obtém a ID do processo do do Bloco de Notas e a armazena na variável $nid. Stop-Process interrompe o processo com o ID armazenado no $nid. Wait-Process espera até que o processo de do Bloco de Notas seja interrompido.

Exemplo 2: Especificando um processo

Este exemplo mostra três métodos diferentes de especificar um processo para Wait-Process. O primeiro comando obtém o processo do Bloco de Notas e armazena-o 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.

$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 de forma intercambiável.

Exemplo 3: Aguarde processos por um tempo especificado

Neste exemplo, Wait-Process aguarda 30 segundos para que os processos Outlook e Winword parem. Se ambos os processos não forem interrompidos, o cmdlet exibirá um erro não terminativo e o prompt de comando.

Wait-Process -Name outlook, winword -Timeout 30

Parâmetros

-Any

Quando vários processos são passados para Wait-Process, 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 restantes processos continuam a decorrer.

Esse parâmetro foi adicionado no PowerShell 7.4.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Id

Especifica as IDs de processo dos processos. Para especificar vários IDs, use vírgulas para separá-los. Para encontrar o PID de um processo, digite Get-Process.

Propriedades dos parâmetros

Tipo:

Int32[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:PID, ProcessId

Conjuntos de parâmetros

Id
Position:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos: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 cmdlet Get-Process.

Propriedades dos parâmetros

Tipo:

Process[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

InputObject
Position:Named
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-Name

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

Propriedades dos parâmetros

Tipo:

String[]

Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:ProcessName

Conjuntos de parâmetros

Name
Position:0
Obrigatório:True
Valor do pipeline:False
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos: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.

Propriedades dos parâmetros

Tipo:SwitchParameter
Default value:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Position:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos: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 exibe um erro de não terminação que lista os processos que ainda estão em execução e encerra a espera. Por padrão, não há tempo limite.

Propriedades dos parâmetros

Tipo:Int32
Default value:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:TimeoutSec

Conjuntos de parâmetros

(All)
Position:1
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.

Entradas

Process

Você pode canalizar um objeto de processo para este 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.

Notas

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

  • Ao contrário Start-Process -Wait, Wait-Process só espera pelos processos identificados. Start-Process -Wait espera que a árvore de processo (o processo e todos os seus descendentes) saia antes de retornar o controle.