Cómo esperar en un script por lotes? [duplicar]
Posible duplicado:
Estoy tratando de escribir un script por lotes y tratando de esperar 10 segundos entre 2 llamadas a funciones. El comando:
sleep 10
No hace que el archivo por lotes espere 10 segundos.
Estoy ejecutando Windows XP.
Nota: Esto no es un duplicado completo de Durmiendo en un archivo por lotes ya que la otra pregunta es también acerca de python, mientras que esto es acerca de los archivos por lotes de Windows.
6 answers
Puede hacer ping a una dirección que seguramente no existe y especificar el tiempo de espera deseado:
ping 192.0.2.2 -n 1 -w 10000 > nul
Y como la dirección no existe, esperará 10.000 ms (10 segundos) y volverá.
- La parte
-w 10000
especifica el tiempo de espera deseado en milisegundos. - La parte
-n 1
le dice a ping que solo debe intentar una vez (normalmente lo intentaría 4 veces). - La parte
> nul
se anexa para que el comando ping no genere nada a pantalla.
Puedes hacer fácilmente un comando de sueño tú mismo creando un sueño.bate en algún lugar en tu CAMINO y usa la técnica anterior:
rem SLEEP.BAT - sleeps by the supplied number of seconds
@ping 192.0.2.2 -n 1 -w %1000 > nul
NOTA: El 192.0.2.la dirección x está reservada según RFC 3330 por lo que definitivamente no existirá en el mundo real. Citando de la especificación:
192.0.2.0 / 24 - Este bloque se asigna como "TEST-NET" para su uso en documentación y código de ejemplo. A menudo se usa junto con nombres de dominio example.com o example.net en proveedor y protocolo documentación. Direcciones dentro de este bloque no deben aparecer en el internet público.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-02-21 05:05:38
Será mejor que hagas ping 127.0.0.1. Windows ping se detiene durante un segundo entre los pings, por lo que si desea dormir durante 10 segundos, use
ping -n 11 127.0.0.1 > nul
De esta manera no necesita preocuparse por devoluciones anticipadas inesperadas (por ejemplo, no hay una ruta predeterminada y se sabe instantáneamente que el 123.45.67.89 es inalcanzable.)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-04-09 19:30:11
En realidad encontré el comando correcto para usar.. se llama tiempo de espera: http://www.ss64.com/nt/timeout.html
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-04-09 19:39:56
Usé esto
:top
cls
type G:\empty.txt
type I:\empty.txt
timeout /T 500
goto top
¿Qué pasa con:
@echo off
set wait=%1
echo waiting %wait% s
echo wscript.sleep %wait%000 > wait.vbs
wscript.exe wait.vbs
del wait.vbs
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-05 18:57:24
Bueno, ¿existe sleep
siquiera en su caja de Windows XP? Según este post: http://malektips.com/xp_dos_0002.html sleep
no está disponible en Windows XP, y tienes que descargar el Kit de Recursos de Windows 2003 para obtenerlo.
La respuesta de Chakrit también te da otra forma de hacer una pausa.
Intente ejecutar sleep 10
desde un símbolo del sistema.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-02-11 08:16:26