Wait-Process
Attend l'arrêt des processus avant d'accepter une autre entrée.
Syntax
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[-Any]
[-PassThru]
[<CommonParameters>]
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[-Any]
[-PassThru]
[<CommonParameters>]
Wait-Process
[[-Timeout] <Int32>]
[-Any]
[-PassThru]
-InputObject <Process[]>
[<CommonParameters>]
Description
Cette applet de commande ne fonctionne pas sur Linux ou macOS.
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
Cet exemple montre comment arrêter le processus Bloc-notes Windows, puis attendre que le processus soit arrêté avant de continuer avec la commande suivante.
$nid = (Get-Process notepad).id
Stop-Process -Id $nid
Wait-Process -Id $nid
L’applet Get-Process
de commande obtient l’ID de processus du processus Bloc-notes Windows et le stocke dans la $nid
variable. Stop-Process
arrête le processus avec l’ID stocké dans $nid
. Wait-Process
attend que le processus de Bloc-notes Windows soit arrêté.
Exemple 2 : Spécification d’un processus
Cet exemple montre trois méthodes différentes de spécification d’un processus à Wait-Process
. La première commande obtient le processus Bloc-notes Windows 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 .
$p = Get-Process notepad
Wait-Process -Id $p.id
Wait-Process -Name "notepad"
Wait-Process -InputObject $p
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
Dans cet exemple, Wait-Process
attend 30 secondes que les processus Outlook et Winword s’arrêtent. 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.
Wait-Process -Name outlook, winword -Timeout 30
Paramètres
-Any
Lorsque plusieurs processus sont passés, Wait-Process
l’applet de commande attend que tous les processus se terminent avant de retourner. Avec ce paramètre, l’applet de commande retourne quand l’un des processus quitte. Les processus restants continuent d’être exécutés.
Ce paramètre a été ajouté dans PowerShell 7.4.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-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[] |
Aliases: | PID, ProcessId |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | 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 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | 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[] |
Aliases: | ProcessName |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-PassThru
Par défaut, cette applet de commande ne génère rien. Avec ce paramètre, l’applet de commande retourne des objets représentant les processus qui ont été attendus.
Ce paramètre a été ajouté dans PowerShell 7.4.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 |
Aliases: | TimeoutSec |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entrées
Vous pouvez diriger un objet de processus vers cette applet de commande.
Sorties
None
Par défaut, cette applet de commande ne retourne aucune sortie.
L’applet de commande retourne des objets de processus lorsque vous utilisez le paramètre PassThru .
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.
Liens associés
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour