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

Hoe laat ik een batchbestand enkele seconden wachten/slapen?

Ik gebruik een batchbestand om een aantal programma’s op te starten die ik op de achtergrond moet draaien. Tot nu toe had ik het pauzecommando gebruikt om het uit te voeren nadat enkele van de andere start-ups klaar waren. Ik zou liever de wacht- of slaapcommando’s gebruiken, maar die lijken niet in Windows 7 te zijn opgenomen.

Weet iemand hoe je die commando’s terug kunt zetten, of een andere methode die hetzelfde resultaat oplevert?

Antwoorden (6)

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

U kunt het commando timeout gebruiken:

Dit hulpprogramma accepteert een time-outparameter om te wachten op de opgegeven tijdsperiode (in seconden) of tot een willekeurige toets wordt ingedrukt. Het accepteert ook een parameter om de toets te negeren.

bijvoorbeeld om 10 seconden te wachten:

TIMEOUT /T 10

voor meer details:

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

Er zijn veel slaapprogramma’s die u kunt downloaden en in uw System32 map kunt plaatsen, een daarvan is voorzien van de Windows Server 2003 Resource Kit genaamd sleep.exe.

U kunt ook de ping-truc gebruiken:

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

dan van ergens in uw batchbestand, u kunt het zo noemen:

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

Er is ook

waitfor SomethingThatIsNeverHappening /t 10

die tussen 1 en 99999 seconden wachten.

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

sleep.exe is opgenomen in de Windows Server 2003 Resource Kit Tools .

U kunt gebruiken:

slaap /? slaap seconden slaap -m microseconden

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

Als je Python hebt geïnstalleerd (en het installatiepad aan je omgevingsvariabele hebt toegevoegd), kun je Python laten slapen met iets als:

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

(Als je Windows Vista of hoger hebt, is timeout natuurlijk wel de manier om te gaan).