La commande sleep
pour Windows¶
En fait, elle n’existe pas.
Étant donné qu’il n’existe pas de commande Windows est livré avec une commande qui s’appelle Cependant, bien que cette commande fonctionnera la plupart du temps, il se peut que cette erreur survienne : Ce problème arrive lorsque Cygwin est installé. Dans ce cas, il s’agira de l’exécutable fourni par Cygwin et non celui de Windows. Ceci est du fait que Cygwin modifie le chemin de recherche des exécutables et prend l’ascendance sur les dossiers du système. Et il s’avère que la version de la commande Un correctif possible est d’utiliser le chemin complet de l’exécutable :sleep
sur Windows, nous pouvons tenter de l’émuler ou trouver des alternatives.timeout
¶timeout
, située dans le dossier C:\Windows\System32
, et qui pourrait faire l’affaire. Par exemple, pour faire une pause de 5 secondes :timeout /t 5 /nobreak > nul
timeout: invalid time interval ‘/t’
Try 'timeout --help' for more information.
timeout
de Cygwin ne prend pas les mêmes arguments.%systemroot%\system32\timeout.exe /t 5 /nobreak > nul
ping
¶
Il existe une alternative universelle : ping
. C’est une astuce vieille comme Windows, mais qu’il fallait connaître :
ping 127.0.0.1 -n 6 > NUL
L’idée, c’est de pinger l’adresse locale N fois pour une pause de N secondes. Comme L’implémentation de ReactOS permet de le vérifier :ping
utilise un intervalle de une seconde entre chaque essai, il faut utiliser -n N+1
pour simuler une pause de N secondes. Dans cet exemple, -n 6
permet donc de faire une pause de 5 secondes.Une Seconde d’Intervalle ?¶
/* Le premier ping, celui nous obligeant à utiliser N+1 */
Ping();
/* Et la boucle : délai 1 sec + N ping */
i = 1;
while (i < PingCount)
{
Sleep(1000);
Ping();
if (!PingForever)
i++;
}
🎣 Source¶
📜 Historique¶
- 2024-02-07
Déplacement de l’article depuis le blog.
- 2020-08-08
Premier jet.