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.

Consultant chez Délibérata le jour, blogueur pour IT-Connect la nuit, je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

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

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

Laisser un commentaire

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.