Wait-Process

Espera a que los procesos se detengan antes de aceptar más entradas.

Syntax

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

Este cmdlet no funciona en Linux o macOS.

El Wait-Process cmdlet espera a que uno o varios procesos en ejecución se detengan antes de aceptar la entrada. En la consola de PowerShell, este cmdlet suprime el símbolo del sistema hasta que se detengan los procesos. Puede especificar un proceso por nombre de proceso o identificador de proceso (PID) o canalizar un objeto de proceso a Wait-Process.

Wait-Process funciona solo en procesos que se ejecutan en el equipo local.

Ejemplos

Ejemplo 1: Detener un proceso y esperar

En este ejemplo se detiene el proceso de Bloc de notas y, a continuación, se espera a que el proceso se detenga antes de continuar con el comando siguiente.

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

El Get-Process cmdlet obtiene el identificador de proceso del proceso de Bloc de notas y lo almacena en la $nid variable . Stop-Process detiene el proceso con el identificador almacenado en $nid. Wait-Processespera hasta que se detenga el proceso de Bloc de notas.

Ejemplo 2: Especificación de un proceso

En este ejemplo se muestran tres métodos diferentes para especificar un proceso en Wait-Process. El primer comando obtiene el proceso de Bloc de notas y lo almacena en la $p variable . El segundo comando usa el parámetro Id , el tercer comando usa el parámetro Name y el cuarto comando usa el parámetro InputObject .

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

Estos comandos tienen los mismos resultados y se pueden usar indistintamente.

Ejemplo 3: Esperar procesos durante un tiempo especificado

En este ejemplo, Wait-Process espera 30 segundos para que los procesos de Outlook y Winword se detengan. Si ninguno de ellos se detiene, el cmdlet muestra un error de no terminación y el símbolo del sistema.

Wait-Process -Name outlook, winword -Timeout 30

Parámetros

-Any

Cuando se pasan varios procesos a Wait-Process, el cmdlet espera a que todos los procesos salgan antes de volver. Con este parámetro, el cmdlet devuelve cuando se cierra cualquiera de los procesos. Los procesos restantes continúan ejecutándose.

Este parámetro se agregó en PowerShell 7.4.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

Especifica los identificadores de proceso de los procesos. Para especificar varios identificadores, use comas para separar los identificadores. Para buscar el PID de un proceso, escriba Get-Process.

Type:Int32[]
Aliases:PID, ProcessId
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-InputObject

Especifica los procesos mediante el envío de objetos de proceso. Escriba una variable que contenga los objetos de proceso o escriba un comando o expresión que obtenga los objetos de proceso, como el Get-Process cmdlet .

Type:Process[]
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Especifica los nombres de proceso de los procesos. Si se van a especificar varios nombres, use comas para separarlos. No se admite el uso de caracteres comodín.

Type:String[]
Aliases:ProcessName
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

De forma predeterminada, este cmdlet no genera nada. Con este parámetro, el cmdlet devuelve objetos que representan los procesos que se esperaron.

Este parámetro se agregó en PowerShell 7.4.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Timeout

Especifica el tiempo máximo, en segundos, que este cmdlet espera a que se detengan los procesos especificados. Cuando este intervalo finaliza, el comando muestra un error de no terminación en el que se enumeran los procesos que se están ejecutando y finaliza la espera. De forma predeterminada, no hay tiempo de espera.

Type:Int32
Aliases:TimeoutSec
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

Process

Puede canalizar un objeto de proceso a este cmdlet.

Salidas

None

De forma predeterminada, este cmdlet no devuelve ninguna salida.

Process

El cmdlet devuelve objetos de proceso cuando se usa el parámetro PassThru .

Notas

  • Este cmdlet usa el método WaitForExit de la clase System.Diagnostics.Process .

  • A diferencia de Start-Process -Wait, Wait-Process solo espera los procesos identificados. Start-Process -Wait espera a que el árbol de procesos (el proceso y todos sus descendientes) salgan antes de devolver el control.