Wait-Process
Attende l'arresto dei processi prima di accettare altri input.
Sintassi
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Wait-Process
[[-Timeout] <Int32>]
-InputObject <Process[]>
[<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 un oggetto processo a Wait-Process
.
Wait-Process
funziona solo nei 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 processo del processo 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 blocco note e lo archivia nella $p
variabile. Il secondo comando usa il parametro Id , il terzo comando usa il parametro Name e il quarto comando usa il parametro InputObject .
$p = Get-Process notepad
Wait-Process -Id $p.id
Wait-Process -Name "notepad"
Wait-Process -InputObject $p
Questi comandi restituiscono gli stessi risultati e possono essere usati in modo interscambiabile.
Esempio 3: Attendere i processi per un periodo di tempo specificato
In questo esempio, Wait-Process
attende 30 secondi per i processi outlook e Winword da arrestare. Se entrambi i processi non vengono arrestati, il cmdlet visualizza un errore non irreversibile e il prompt dei comandi.
Wait-Process -Name outlook, winword -Timeout 30
Parametri
-Id
Specifica gli ID processo dei processi. Per specificare più ID, separarli con la virgola.
Per trovare il PID di un processo, digitare Get-Process
.
Type: | Int32[] |
Aliases: | PID, ProcessId |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InputObject
Specifica i processi inviando oggetti processo. Immettere una variabile contenente gli oggetti di elaborazione o digitare un comando o un'espressione che ottiene gli oggetti di elaborazione, ad esempio il Get-Process
cmdlet.
Type: | Process[] |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Specifica i nomi di processo dei processi. Per specificare più nomi, separarli con la virgola. I caratteri jolly non sono supportati.
Type: | String[] |
Aliases: | ProcessName |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Timeout
Specifica il tempo massimo, in secondi, che questo cmdlet attende l'arresto dei processi specificati. Alla scadenza di questo intervallo, il comando visualizzo un errore non irreversibile in cui sono elencati i processi ancora in esecuzione e termina l'attesa. Per impostazione predefinita, non è disponibile alcun timeout.
Type: | Int32 |
Aliases: | TimeoutSec |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Input
È possibile inviare un oggetto processo a questo cmdlet.
Output
None
Questo cmdlet non restituisce output.
Note
Questo cmdlet usa il metodo WaitForExit della classe System.Diagnostics.Process .
A differenza
Start-Process -Wait
di ,Wait-Process
attende solo i processi identificati.Start-Process -Wait
attende che l'albero del processo (il processo e tutti i discendenti) venga chiuso prima di restituire il controllo.