Quando scrivo un file batch per automatizzare qualcosa su una finestra di Windows, ho bisogno di sospenderne l'esecuzione per alcuni secondi (di solito in un ciclo di test / attesa, in attesa dell'avvio di un processo). Al momento, la migliore soluzione che ho potuto trovare utilizza il ping (non ti scherzo) per ottenere l'effetto desiderato. Ho trovato una migliore scrittura di questo qui , che descrive un callable "wait.bat", implementato come segue:
@ping 127.0.0.1 -n 2 -w 1000 > nul
@ping 127.0.0.1 -n %1% -w 1000> nul
È quindi possibile includere le chiamate a wait.bat nel proprio file batch, passando il numero di secondi di sospensione.
Apparentemente il Resource Kit di Windows 2003 fornisce un comando di sospensione simile a Unix (finalmente!). Nel frattempo, per quelli di noi che usano ancora Windows XP, Windows 2000 o (purtroppo) Windows NT , c'è un modo migliore?
Ho modificato lo sleep.pyscript nella risposta accettata , in modo che sia impostato per impostazione predefinita su un secondo se non viene passato alcun argomento sulla riga di comando:
import time, sys
time.sleep(float(sys.argv[1]) if len(sys.argv) > 1 else 1)
pingcomando o scarica il kit di risorse di Windows che include un sleepcomando. Maggiori dettagli qui: File batch Comando SLEEP