2009-09-29 00:21:29 +0000 2009-09-29 00:21:29 +0000
58
58

Comment faire pour qu'un fichier batch attende / se mette en veille pendant quelques secondes ?

J'utilise un fichier batch pour démarrer quelques programmes que je dois exécuter en arrière-plan. Jusqu'à présent, j'utilisais la commande pause pour l'exécuter après que certains des autres démarrages aient été terminés. Je préférerais utiliser les commandes wait ou sleep mais elles ne semblent pas être incluses dans Windows 7.

Quelqu'un sait-il comment remettre ces commandes, ou une autre méthode qui permet d'obtenir les mêmes résultats ?

Réponses (6)

126
126
126
2010-02-18 22:21:34 +0000

Vous pouvez utiliser la commande timeout :

Cet utilitaire accepte un paramètre de temporisation pour attendre la période de temps spécifiée (en secondes) ou jusqu'à ce qu'une touche soit enfoncée. Il accepte également un paramètre permettant d'ignorer l'appui sur une touche.

Par exemple, pour attendre 10 secondes :

TIMEOUT /T 10

Pour plus de détails :

TIMEOUT /?
30
30
30
2009-09-29 00:26:17 +0000

Il existe de nombreux utilitaires de veille que vous pouvez télécharger et déposer dans votre dossier System32, l'un d'eux est fourni avec le Windows Server 2003 Resource Kit appelé sleep.exe.

Vous pouvez également utiliser l'astuce du ping :

:sleep
ping 127.0.0.1 -n 2 -w 1000 > NUL
ping 127.0.0.1 -n %1 -w 1000 > NUL

puis, à partir de quelque part dans votre fichier batch, vous pouvez l'appeler comme suit :

CALL :sleep 1
8
8
8
2010-09-01 12:53:17 +0000
timeout /t <seconds> /nobreak > NUL
6
6
6
2010-09-01 13:06:17 +0000

Il y a aussi

waitfor SomethingThatIsNeverHappening /t 10

Qui attendra entre 1 et 99999 secondes.

1
1
1
2009-09-29 06:11:30 +0000

sleep.exe est inclus dans le Windows Server 2003 Resource Kit Tools .

Vous pouvez utiliser :

sleep / ? sleep seconds sleep -m microseconds

-1
-1
-1
2011-01-14 14:43:50 +0000

Si vous avez installé Python (et ajouté le chemin d'installation à votre variable d'environnement), vous pouvez laisser Python faire la mise en veille avec quelque chose comme :

echo from time import sleep; sleep(3) | python

(Si vous avez Windows Vista ou supérieur, timeout est naturellement la voie à suivre, cependant).