Condividi tramite


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