Búsqueda de sitios web

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 $p

Estos 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 30

Pará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-Process solo espera los procesos identificados. Start-Process -Wait espera a que salga el árbol de procesos (el proceso y todos sus descendientes) antes de devolver el control.

Artículos relacionados