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

Come faccio a far aspettare / dormire un file batch per alcuni secondi?

Utilizzo un file batch per avviare alcuni dei programmi che mi servono in background. Fino ad ora, avevo usato il comando di pausa per eseguirlo dopo che alcuni degli altri avviamenti erano finiti. Preferirei usare i comandi di attesa o di sospensione, ma non sembrano essere inclusi in Windows 7.

Qualcuno sa come rimettere questi comandi, o un metodo diverso che ottenga gli stessi risultati?

Risposte (6)

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

È possibile utilizzare il comando timeout:

Questa utility accetta un parametro di timeout per attendere il periodo di tempo specificato (in secondi) o fino a quando non viene premuto un qualsiasi tasto. Accetta anche un parametro per ignorare la pressione del tasto.

Ad esempio, per attendere 10 secondi:

TIMEOUT /T 10

Per maggiori dettagli:

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

Ci sono molti programmi di utilità per il sonno che potete scaricare e scaricare nella vostra cartella System32, uno è fornito con il Windows Server 2003 Resource Kit chiamato sleep.exe.

Potete anche usare il trucco del ping:

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

quindi da qualche parte nel vostro file batch, potete chiamarlo così:

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

C'è anche

waitfor SomethingThatIsNeverHappening /t 10
``` &001 


che aspetterà da 1 a 99999 secondi.
1
1
1
2009-09-29 06:11:30 +0000

sleep.exe è incluso nel Windows Server 2003 Resource Kit Tools .

È possibile utilizzare:

sleep /? sleep seconds sleep -m microsecondi di sonno

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

Se avete installato Python (e avete aggiunto il percorso di installazione alla vostra variabile di ambiente), potete lasciare che Python faccia il sonno con qualcosa come:

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

(Se avete Windows Vista o superiore, timeout è naturalmente la strada da percorrere, però).