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 !
La course aux clics ?
Est-ce le début de la faim ?
Bonjour, pas compris votre commentaire ?
Non, cet article simple m’a bien servi.
Nickel merci 🙂
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 😉
Hello,
Effectivement… J’ai corrigé, merci !
Florian
et comment faire pour le relancer s’il vous plaît ?