Effectuer une pause
Voilà une question que l'on peut se poser quand on écrit des batchs : Comment réaliser une pause de X secondes ?
Linux
Sous Linux, la commande sleep permet d'attendre un moment spécifié avant de poursuivre.
Syntaxe
sleep <NUMBER><SUFFIX>
Par défaut, le nombre (NUMBER) indiqué est des secondes. Le nombre indiqué doit être un entier.
L'attente peut être en secondes (s), minutes, heures (h) ou jours (d). Il est mentionné par le paramètre SUFFIX.
DOS / Windows
Sous Windows, on utilisera la commande ping. Deux paramètres nous seront utile : le délai d'attente d'une réponse (w) et le nombre d'essai (n). On effectuera un ping sur une adresse qui ne peut pas être jointe.
Pour Windows XP, le fonctionnement de Ping diffère. On retiendra une autre syntaxe.
Syntaxe Windows XP
ping 1.1.1.1 -n 5 > nul
Syntaxe
ping 1.1.1.1 -n 1 -w 1000 > nul
L'option w doit être indiqué en millisecondes.
Batch
La syntaxe précédente ne nous permet d'effectuer une commande passe-partout, du genre wait 5.
Pour réaliser cet aspect là, nous écrirons un batch. Il permettra de traiter un argument.
L'argument sera le nombre de secondes que l'on souhaite attendre.
Remarque
J'ai vu qu'il était également possible d'utiliser la commande choice avec l'option /t. Cependant, il est dommage que toute action sur le clavier annulera l'attente.