Wait-Process
Attende che i processi vengano arrestati prima di accettare più input.
Sintassi
Name (Impostazione predefinita)
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Id
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
InputObject
Wait-Process
[[-Timeout] <Int32>]
-InputObject <Process[]>
[<CommonParameters>]
Descrizione
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
PS C:\> $nid = (Get-Process notepad).Id
PS C:\> Stop-Process -Id $nid
PS C:\> Wait-Process -Id $nid
In questo esempio viene arrestato il processo Blocco note e quindi viene attendibile l'arresto del processo prima di continuare con il comando successivo.
Il primo comando usa il Get-Process cmdlet per ottenere l'ID del processo del Blocco note. Archivia l'ID nella $nid variabile .
Il secondo comando usa il Stop-Process cmdlet per arrestare il processo con l'ID archiviato in $nid.
Il terzo comando usa Wait-Process per attendere che il processo del Blocco note venga arrestato. Usa il parametro Id di Wait-Process per identificare il processo.
Esempio 2: Specifica di un processo
PS C:\> $p = Get-Process notepad
PS C:\> Wait-Process -Id $p.Id
PS C:\> Wait-Process -Name "notepad"
PS C:\> Wait-Process -InputObject $p
Questi comandi mostrano tre metodi diversi per specificare un processo per 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 .
Questi comandi hanno gli stessi risultati e possono essere utilizzati in modo intercambiabile.
Esempio 3: Attendere i processi per un tempo specificato
PS C:\> Wait-Process -Name outlook, winword -Timeout 30
Questo comando attende 30 secondi per l'arresto dei processi di Outlook e Winword. Se entrambi i processi non vengono arrestati, il cmdlet visualizza un errore non fatale e il prompt dei comandi.
Parametri
-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 |
-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
Questo cmdlet non restituisce alcun output.
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.