Wait-Process (Microsoft.PowerShell.Management)
Wait-Process
- Módulo:
- Microsoft.PowerShell.Management
Espera a que se detengan los procesos antes de aceptar más entradas.
Sintaxis
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>]Descripción
Este cmdlet no funciona en Linux ni en macOS.
El cmdlet Wait-Process espera a que se detengan uno o más procesos en ejecución antes de aceptar entradas. 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 ID de proceso (PID), o canalizar un objeto de proceso a Wait-Process.
Wait-Process funciona solo en procesos que se ejecutan en la computadora local.
Ejemplos
Ejemplo 1: detener un proceso y esperar
Este ejemplo detiene el proceso del Bloc de notas y luego espera a que se detenga antes de continuar con el siguiente comando.
$nid = (Get-Process notepad).id
Stop-Process -Id $nid
Wait-Process -Id $nid
El cmdlet Get-Process obtiene el ID del proceso Notepad y lo almacena en la variable $nid. Stop-Process detiene el proceso con el ID almacenado en $nid. Wait-Process espera hasta que se detenga el proceso del Bloc de notas.
Ejemplo 2: especificar un proceso
Este ejemplo muestra tres métodos diferentes para especificar un proceso en Wait-Process. El primer comando obtiene el proceso del Bloc de notas y lo almacena en la variable $p. 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 $pEstos comandos tienen los mismos resultados y se pueden usar indistintamente.
Ejemplo 3: esperar procesos durante un tiempo específico
En este ejemplo, Wait-Process espera 30 segundos hasta que se detengan los procesos Outlook y Winword. Si ambos procesos no se detienen, el cmdlet muestra un error de no terminación y el símbolo del sistema.
Wait-Process -Name outlook, winword -Timeout 30Parámetros
-Any
Cuando se pasan varios procesos a Wait-Process, el cmdlet espera a que todos los procesos salgan antes de regresar. Con este parámetro, el cmdlet regresa cuando alguno de los procesos sale. Los procesos restantes continúan ejecutándose.
Este parámetro se agregó en PowerShell 7.4.
- Tipo :
SwitchParameter
- Posición:
Nombrado
- Valor predeterminado:
None
- Requerido:
False
- Aceptar entrada de canalización:
-
False
- Aceptar caracteres comodín:
False
-Id
Especifica los ID de proceso de los procesos. Para especificar varios ID, utilice comas para separarlos. Para encontrar el PID de un proceso, escriba Get-Process.
- Tipo :
Int32[]
- Alias:
PID, ProcessId
- Posición:
0
- Valor predeterminado:
None
- Requerido:
True
- Aceptar entrada de canalización:
True
- Aceptar caracteres comodín:
False
-InputObject
Especifica los procesos enviando objetos de proceso. Introduzca una variable que contenga los objetos del proceso o escriba un comando o expresión que obtenga los objetos del proceso, como el cmdlet Get-Process.
- Tipo :
Proceso[]
- Posición:
Nombrado
- Valor predeterminado:
None
- Requerido:
True
- Aceptar entrada de canalización:
True
- Aceptar caracteres comodín:
False
-Name
Especifica los nombres de los procesos. Para especificar varios nombres, utilice comas para separar los nombres. No se admiten caracteres comodín.
- Tipo :
String[]
- Alias:
ProcessName
- Posición:
0
- Valor predeterminado:
None
- Requerido:
True
- Aceptar entrada de canalización:
True
- Aceptar caracteres comodín:
False
-PassThru
De forma predeterminada, este cmdlet no genera nada. Con este parámetro, el cmdlet devuelve objetos que representan los procesos en espera.
Este parámetro se agregó en PowerShell 7.4.
- Tipo :
SwitchParameter
- Posición:
Nombrado
- Valor predeterminado:
None
- Requerido:
False
- Aceptar entrada de canalización:
False
- Aceptar caracteres comodín:
False
-Timeout
Especifica el tiempo máximo, en segundos, que este cmdlet espera a que se detengan los procesos especificados. Cuando este intervalo expira, el comando muestra un error de no finalización que enumera los procesos que aún se están ejecutando y finaliza la espera. De forma predeterminada, no hay tiempo de espera.
- Tipo :
Int32
- Alias:
TimeoutSec
- Posición:
1
- Valor predeterminado:
None
- Requerido:
False
- Aceptar entrada de canalización:
False
- Aceptar caracteres comodín:
False
Entradas
Proceso
Puede canalizar un objeto de proceso a este cmdlet.
Salidas
Ninguno
De forma predeterminada, este cmdlet no devuelve ningún resultado.
Proceso
El cmdlet devuelve objetos de proceso cuando se utiliza el parámetro PassThru.
Notas
Este cmdlet utiliza el método WaitForExit de la clase System.Diagnostics.Process.
A diferencia de
Start-Process -Wait,Wait-Processsolo espera los procesos identificados.Start-Process -Waitespera a que salga el árbol de procesos (el proceso y todos sus descendientes) antes de devolver el control.