Wait-Process
Attende l'arresto dei processi prima di accettare altro input.
Sintassi
Wait-Process [-Id] <Int32[]> [[-Timeout] <int>] [<CommonParameters>]
Wait-Process -InputObject <Process[]> [[-Timeout] <int>] [<CommonParameters>]
Wait-Process [-Name] <string[]> [[-Timeout] <int>] [<CommonParameters>]
Descrizione
Il cmdlet Wait-Process attende l'arresto di uno o più processi in esecuzione prima di accettare input. Nella console di Windows PowerShell, questo cmdlet elimina il prompt dei comandi finché i processi non sono stati arrestati. È possibile specificare un processo in base al nome o all'ID processo (PID) oppure reindirizzare un oggetto processo a Wait-Process.
Wait-Process funziona solo in processi in esecuzione nel computer locale.
Parametri
-Id <Int32[]>
Specifica gli ID dei processi. Per specificare più ID, separarli tramite virgole Per trovare il PID di un processo, digitare "Get-Process". Il nome del parametro ("Id") è facoltativo.
Obbligatorio? |
true |
Posizione? |
1 |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByPropertyName) |
Accettare caratteri jolly? |
false |
-InputObject <Process[]>
Specifica i processi inviando oggetti processo. Immettere una variabile che contiene gli oggetti processo o digitare un comando o un'espressione che ottiene gli oggetti processo, ad esempio un comando Get-Process.
Obbligatorio? |
true |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByValue) |
Accettare caratteri jolly? |
false |
-Name <string[]>
Specifica i nomi dei processi. Per specificare più nomi, separarli tramite virgole
Obbligatorio? |
true |
Posizione? |
1 |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByPropertyName) |
Accettare caratteri jolly? |
false |
-Timeout <int>
Determina il tempo massimo, in secondi, per cui Wait-Process attende l'arresto dei processi specificati. Quando scade questo intervallo, il comando visualizza un errore non fatale che elenca i processi ancora in esecuzione e termina l'attesa.
Obbligatorio? |
false |
Posizione? |
2 |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
<CommonParameters>
Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.
Input e output
Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.
Input |
System.Diagnostics.Process È possibile reindirizzare un oggetto processo a Wait-Process. |
Output |
Nessuno Questo cmdlet non genera alcun output. |
Note
Questo cmdlet utilizza il metodo WaitForExit della classe System.Diagnostics.Process. Per ulteriori informazioni su questo metodo, vedere Microsoft .NET Framework SDK.
Esempio 1
C:\PS>$nid = (get-process notepad).id
C:\PS> stop-process -id $nid
C:\PS> wait-process -id $nid
Descrizione
-----------
Questi comandi arrestano il processo Blocco note, quindi attendono l'arresto del processo prima di procedere con il comando successivo.
Nel primo comando viene utilizzato il cmdlet Get-Process per ottenere l'ID del processo Blocco Note. L'ID viene salvato nella variabile $nid.
Il secondo comando utilizza il cmdlet Stop-Process per arrestare il processo con l'ID salvato in $nid.
Il terzo comando utilizza il cmdlet Wait-Process per attendere l'arresto del processo Blocco Note. Viene utilizzato il parametro ID di Wait-Process per identificare il processo.
Esempio 2
C:\PS>$p = get-process notepad
C:\PS> wait-process -id $p.id
C:\PS> wait-process -name notepad
C:\PS> wait-process -inputobject $p
Descrizione
-----------
Questi comandi illustrano tre metodi diversi per specificare un processo al cmdlet Wait-Process. Nel primo comando è possibile ottenere un processo Blocco Note e salvarlo nella variabile $p.
Il secondo comando utilizza il parametro ID, il terzo il parametro Name e il quarto il parametro InputObject.
Questi comandi hanno gli stessi risultati pertanto sono intercambiabili.
Esempio 3
C:\PS>wait-process -name outlook, winword -timeout 30
Descrizione
-----------
Questo comando attende 30 secondi per l'arresto dei processi di Outlook e Winword. Se non vengono arrestati entrambi i processi, il cmdlet visualizza un errore non fatale e il prompt dei comandi.
Vedere anche
Concetti
Get-Process
Start-Process
Stop-Process
Wait-Process
Debug-Process