Condividi tramite


Wait-Process

Attende che i processi vengano arrestati prima di accettare più input.

Sintassi

Name (impostazione predefinita).

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>]

Descrizione

Questo cmdlet non funziona in Linux o macOS.

Il Wait-Process cmdlet attende che uno o più processi in esecuzione vengano arrestati prima di accettare l'input. Nella console di PowerShell questo cmdlet elimina il prompt dei comandi fino a quando i processi non vengono arrestati. È possibile specificare un processo in base al nome del processo o all'ID processo (PID) o inviare tramite pipe un oggetto processo a Wait-Process.

Wait-Process funziona solo sui processi in esecuzione nel computer locale.

Esempio

Esempio 1: Arrestare un processo e attendere

Questo esempio arresta il processo blocco note e quindi attende che il processo venga arrestato prima che continui con il comando successivo.

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

Il Get-Process cmdlet ottiene l'ID del processo del Blocco note e lo archivia nella $nid variabile . Stop-Process arresta il processo con l'ID archiviato in $nid. Wait-Process attende fino a quando il processo blocco note non viene arrestato.

Esempio 2: Specifica di un processo

In questo esempio vengono illustrati tre metodi diversi per specificare un processo in Wait-Process. Il primo comando ottiene il processo del Blocco note e lo archivia nella $p variabile . Il secondo comando utilizza il parametro Id , il terzo il parametro Name e il quarto il parametro InputObject .

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

Questi comandi hanno gli stessi risultati e possono essere utilizzati in modo intercambiabile.

Esempio 3: Attendere i processi per un tempo specificato

In questo esempio attende Wait-Process l'arresto dei processi outlook e Winword di 30 secondi. Se entrambi i processi non vengono arrestati, il cmdlet visualizza un errore non fatale e il prompt dei comandi.

Wait-Process -Name outlook, winword -Timeout 30

Parametri

-Any

Quando vengono passati più processi in Wait-Process, il cmdlet attende l'uscita di tutti i processi prima della restituzione. Con questo parametro, il cmdlet restituisce quando uno dei processi viene chiuso. I processi rimanenti continuano a essere eseguiti.

Questo parametro è stato aggiunto in PowerShell 7.4.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Id

Specifica gli ID dei processi. Per specificare più ID, usare le virgole per separare gli ID. Per trovare il PID di un processo, digitare Get-Process.

Proprietà dei parametri

Tipo:

Int32[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:PID, ProcessId

Set di parametri

Id
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-InputObject

Specifica i processi inviando gli oggetti processo. Immettere una variabile contenente gli oggetti processo oppure digitare un comando o un'espressione che ottiene gli oggetti processo, ad esempio il Get-Process cmdlet .

Proprietà dei parametri

Tipo:

Process[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

InputObject
Posizione:Named
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Name

Specifica i nomi dei processi. Per specificare più nomi, utilizzare le virgole per separarli. I caratteri jolly non sono supportati.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:ProcessName

Set di parametri

Name
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-PassThru

Per impostazione predefinita, questo cmdlet non restituisce alcun risultato. Con questo parametro, il cmdlet restituisce oggetti che rappresentano i processi in attesa.

Questo parametro è stato aggiunto in PowerShell 7.4.

Proprietà dei parametri

Tipo:SwitchParameter
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

(All)
Posizione:Named
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Timeout

Specifica il tempo massimo, in secondi, di attesa del cmdlet per l'arresto dei processi specificati. Alla scadenza di questo intervallo, il comando visualizza un errore non fatale che elenca i processi ancora in esecuzione e termina l'attesa. Per impostazione predefinita, non è previsto alcun timeout.

Proprietà dei parametri

Tipo:Int32
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:TimeoutSec

Set di parametri

(All)
Posizione:1
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

Input

Process

È possibile inviare tramite pipe un oggetto processo a questo cmdlet.

Output

None

Per impostazione predefinita, questo cmdlet non restituisce alcun output.

Process

Il cmdlet restituisce oggetti processo quando si utilizza il parametro PassThru .

Note

  • Questo cmdlet usa il metodo WaitForExit della classe System.Diagnostics.Process .

  • A differenza di Start-Process -Wait, Wait-Process attende solo i processi identificati. Start-Process -Wait attende che l'albero del processo (il processo e tutti i relativi discendenti) venga chiuso prima di restituire il controllo.