15/11/2024

PowerShell

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 de 10 secondes :

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 !

author avatar
Florian BURNEL Co-founder of IT-Connect
Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". 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.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

7 commentaires sur “Comment faire une pause dans un script PowerShell ?

  • La course aux clics ?
    Est-ce le début de la faim ?

    Répondre
  • Petite erreur au début « Start-Sleep -Seconds 10 » fait une pause de 10 secondes pas d’une minute.
    Sinon super site qui me sert depuis des années maintenant 😉

    Répondre
  • et comment faire pour le relancer s’il vous plaît ?

    Répondre

Laisser un commentaire

Votre adresse e-mail 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.