41 lines
1.5 KiB
Plaintext
41 lines
1.5 KiB
Plaintext
|
====== Effectuer une pause ======
|
||
|
{{ :journal_geek:2021:pasted:20210803-221011.png}}
|
||
|
|
||
|
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.
|
||
|
|
||
|
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.
|
||
|
|
||
|
ping 1.1.1.1 -n 1 -w 1000 > nul
|
||
|
|
||
|
L'option **w** doit être indiqué en millisecondes.
|
||
|
|
||
|
Pour Windows XP, le fonctionnement de **Ping** diffère. On retiendra une autre syntaxe.
|
||
|
|
||
|
ping 1.1.1.1 -n 5 > nul
|
||
|
|
||
|
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.
|
||
|
|
||
|
<code DOS wait.bat>
|
||
|
ping 1.1.1.1 -n 1 -w %1000 >NUL
|
||
|
</code>
|
||
|
|
||
|
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.
|