Wait-Process
Attend l'arrêt des processus avant d'accepter une autre entrée.
Syntaxe
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Wait-Process
[[-Timeout] <Int32>]
-InputObject <Process[]>
[<CommonParameters>]
Description
L’applet Wait-Process
de commande attend qu’un ou plusieurs processus en cours d’exécution soient arrêtés avant d’accepter l’entrée. Dans la console PowerShell, cette applet de commande supprime l’invite de commandes jusqu’à ce que les processus soient arrêtés. Vous pouvez spécifier un processus par nom de processus ou ID de processus (PID) ou diriger un objet de processus vers Wait-Process
.
Wait-Process
fonctionne uniquement sur les processus s’exécutant sur l’ordinateur local.
Exemples
Exemple 1 : Arrêter un processus et attendre
PS C:\> $nid = (Get-Process notepad).id
PS C:\> Stop-Process -Id $nid
PS C:\> Wait-Process -Id $nid
Cet exemple montre comment arrêter le processus du Bloc-notes, puis attendre que le processus soit arrêté avant de continuer avec la commande suivante.
La première commande utilise l’applet Get-Process
de commande pour obtenir l’ID du processus du Bloc-notes. Il stocke l’ID dans la $nid
variable.
La deuxième commande utilise l’applet Stop-Process
de commande pour arrêter le processus avec l’ID stocké dans $nid
.
La troisième commande utilise Wait-Process
pour attendre que le processus du Bloc-notes soit arrêté. Il utilise le paramètre Id de Wait-Process
pour identifier le processus.
Exemple 2 : Spécification d’un processus
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
Ces commandes affichent trois méthodes différentes de spécification d’un processus à Wait-Process
. La première commande obtient le processus du Bloc-notes et le stocke dans la $p
variable.
La deuxième commande utilise le paramètre ID , la troisième commande utilise le paramètre Name et la quatrième commande utilise le paramètre InputObject .
Ces commandes produisent les mêmes résultats et peuvent être utilisées indifféremment.
Exemple 3 : Attendre les processus pendant une heure spécifiée
PS C:\> Wait-Process -Name outlook, winword -Timeout 30
Cette commande attend l’arrêt des processus Outlook et Winword pendant 30 secondes. Si les deux processus ne se sont pas arrêtés, l’applet de commande affiche une erreur sans fin d’exécution et l’invite de commandes.
Paramètres
-Id
Spécifie les identificateurs des processus. Lorsque vous spécifiez plusieurs identificateurs, séparez-les à l'aide de virgules.
Pour rechercher le PID d’un processus, tapez Get-Process
.
Type: | Int32[] |
Alias: | PID, ProcessId |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-InputObject
Spécifie les processus en envoyant des objets processus. Entrez une variable qui contient les objets de processus, ou tapez une commande ou une expression qui obtient les objets de processus, tels que l’applet Get-Process
de commande.
Type: | Process[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Name
Spécifie les noms des processus. Pour spécifier plusieurs noms, séparez-les à l’aide de virgules. Les caractères génériques ne sont pas pris en charge.
Type: | String[] |
Alias: | ProcessName |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-Timeout
Spécifie la durée maximale, en secondes, que cette applet de commande attend que les processus spécifiés s’arrêtent. Lorsque ce délai expire, la commande affiche une erreur sans fin d’exécution qui répertorie les processus dont l’exécution se poursuit et elle met un terme à l’attente. Par défaut, il n’y a pas de délai d’attente.
Type: | Int32 |
Alias: | TimeoutSec |
Position: | 1 |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
Vous pouvez diriger un objet de processus vers cette applet de commande.
Sorties
None
Cette applet de commande ne retourne pas de sortie.
Notes
Cette applet de commande utilise la méthode WaitForExit de la classe System.Diagnostics.Process .
Contrairement
Start-Process -Wait
à ,Wait-Process
attend uniquement les processus identifiés.Start-Process -Wait
attend que l’arborescence de processus (le processus et tous ses descendants) se termine avant de retourner le contrôle.