web-dev-qa-db-fra.com

Comment puis-je faire un fichier batch attendre/dormir pendant quelques secondes?

J'utilise un fichier de commandes pour démarrer quelques-uns des programmes dont j'ai besoin en arrière-plan. Jusqu'à présent, j'avais utilisé la commande pause pour l'exécuter après la fin des autres démarrages. Je préférerais utiliser les commandes wait ou sleep, mais elles ne semblent pas être incluses dans Windows 7.

Quelqu'un sait comment réintégrer ces commandes ou utiliser une autre méthode pour obtenir les mêmes résultats?

56
Cegorach

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 Kit de ressources Windows Server 2003 appelé sleep.exe.

Vous pouvez également utiliser l'astuce de ping:

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

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

CALL :sleep 1
30
John T

Vous pouvez utiliser la commande timeout:

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

Par exemple, pour attendre 10 secondes:

TIMEOUT /T 10

Pour plus de détails:

TIMEOUT /?
126
Alex S
timeout /t <seconds> /nobreak > NUL
8
Prichard

Il y a aussi

waitfor SomethingThatIsNeverHappening /t 10

Ce qui attendra entre 1 et 99999 secondes.

6
Fowl

sleep.exe est inclus dans le Outils du Kit de ressources Windows Server 2003 .

Vous pouvez utiliser:

dormir /?
secondes de sommeil
sommeil -m microsecondes

1
harrymc