Wait-Process
Aguarda que os processos sejam interrompidos antes de aceitar mais entradas.
Sintaxe
Name (Padrã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
esse cmdlet não funciona no Linux ou no 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 PID (ID de processo) ou redirecionar um objeto de processo para Wait-Process.
Wait-Process funciona apenas em processos em execução no computador local.
Exemplos
Exemplo 1: interromper 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 o armazena na variável $nid.
Stop-Process interrompe o processo com a ID armazenada em $nid.
Wait-Process aguarda 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 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.
$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: Aguardar processos por um horário especificado
Neste exemplo, Wait-Process aguarda 30 segundos para que os processos do Outlook e 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.
Wait-Process -Name outlook, winword -Timeout 30
Parâmetros
-Any
Quando vários processos são passados para Wait-Process, o cmdlet aguarda que todos os processos sejam encerrados antes de retornar. Com esse parâmetro, o cmdlet retorna quando qualquer um dos processos é encerrado. Os processos restantes continuam sendo executados.
Esse parâmetro foi adicionado no PowerShell 7.4.
Propriedades do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | False |
-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.
Propriedades do parâmetro
| Tipo: | Int32[] |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | PID, ProcessId |
Conjuntos de parâmetros
Id
| Cargo: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | 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.
Propriedades do parâmetro
| Tipo: | Process[] |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
InputObject
| Cargo: | Named |
| Obrigatório: | True |
| Valor do pipeline: | True |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | 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.
Propriedades do parâmetro
| Tipo: | String[] |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | ProcessName |
Conjuntos de parâmetros
Name
| Cargo: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | True |
| Valor dos argumentos restantes: | 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 do parâmetro
| Tipo: | SwitchParameter |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
Conjuntos de parâmetros
(All)
| Cargo: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | 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.
Propriedades do parâmetro
| Tipo: | Int32 |
| Valor padrão: | None |
| Dá suporte a curingas: | False |
| DontShow: | False |
| Aliases: | TimeoutSec |
Conjuntos de parâmetros
(All)
| Cargo: | 1 |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline pelo nome da propriedade: | False |
| Valor dos argumentos restantes: | 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.
Observações
Esse cmdlet usa o método WaitForExit da classe System.Diagnostics.Process.
Ao contrário de
Start-Process -Wait,Wait-Processespera apenas pelos processos identificados.Start-Process -Waitaguarda a saída da árvore de processo (o processo e todos os seus descendentes) antes de retornar o controle.