Comment faire une pause dans un script PowerShell ?

I. Présentation

Pour réaliser une pause au sein d'un script Powershell, il y a deux méthodes très simple : utiliser le cmdlet Start-Sleep ou son alias sleep. Cette commande répond parfaitement à la question jour : comment faire une pause dans un script PowerShell ?

Lorsque l'on exécute cette commande, elle retarde la suite de l'exécution du script pendant la durée indiquée dans la commande Start-Sleep. Ce qui offre la possibilité de marquer une pause.

II. Cmdlet Start-Sleep

Le cmdlet Start-Sleep est très simple à utiliser : il ne contient que deux paramètres. Il s'agit des paramètres "Seconds" et "Milliseconds" qui permettent, respectivement, de réaliser une pause de X secondes ou X millisecondes.

Pour réaliser une pause d'une minute :

Start-Sleep -Seconds 10

Dans un script, nous pouvons avoir besoin de réaliser une pause en attendant un changement d'état : la création d'un fichier, l'arrêt d'un service, etc... Ce qui nous donne littérallement : Tant que le service XX n'est pas arrêté, effectue une pause de 5 secondes. Toutes les 5 secondes, on se repose la question et on repart pour 5 secondes pause si l'état n'a pas évolué.

Ce qui nous donne le code suivant :

$ServiceName = "wuauserv"
While ((Get-Service -Name $ServiceName).Status -ne "Stopped") {
   Start-Sleep -Seconds 5
}

Inutile d'effectuer le test toutes les 10 millisecondes... Toutes les 5 secondes, cela est suffisant et permet en quelque sorte d'optimiser l'utilisation des ressources de votre machine.

Ce cmdlet est facile à utiliser mais il est bien pratique !

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian B.

Co-Fondateur d'IT-Connect, je souhaite partager mes connaissances et expériences avec vous, et comme la veille techno' est importante je partage aussi des actus.

florian has 1967 posts and counting.See all posts by florian

2 pensées sur “Comment faire une pause dans un script PowerShell ?

Répondre à Florian B. Annuler la réponse

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

 

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.