Étant donné qu'il n'existe pas de commande sleep sur Windows, nous pouvons tenter de l'émuler ou trouver des alternatives.

Windows est livré avec une commande qui s'appelle 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

Cependant, bien que cette commande fonctionnera chez la plupart des gens, d'autres auront des soucis :

timeout: invalid time interval ‘/t’
Try 'timeout --help' for more information.

Arf !
Cette erreur peut survenir 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 timeout de Cygwin ne prend pas les même arguments.

Un correctif possible est d'utiliser le chemin complet de l'exécutable :

%systemroot%\system32\timeout.exe /t 5 /nobreak > nul

Alternative

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 ping utilise un intervalle de 1 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.

1 seconde d'intervalle ?

En se basant sur l'implémentation de ReactOS (dont l'équipe fait un travail énorme), ces quelques lignes permettent de le vérifier :

/* 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 : NXDRIVE-1890: Fix waiting during auto-upgrade.