Cómo esperar en un script por lotes? [duplicar]


Posible duplicado:

Dormir en un archivo de DOS por lotes

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.

Author: Community, 2009-04-09

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.

 254
Author: chakrit,
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.)

 132
Author: Gleb,
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

 118
Author: Thomaschaaf,
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
 42
Author: ,
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-09-20 01:56:38

¿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
 7
Author: L3X0R,
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.

 5
Author: easel,
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