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-Processattende solo i processi identificati.Start-Process -Waitattende che l'albero del processo (il processo e tutti i relativi discendenti) venga chiuso prima di restituire il controllo.