27/4/10

Sleep en Msdos

Cuantas veces hemos ido hacer una pausa de x segundos (sleep) en script .bat o .cmd en Windows y nos hemos dado cuenta que Microsoft no lo ha puesto de serie ….
image
Pues aquí la solución tan solo hace falta ejecutar un ping como el siguiente para hacerle esperar a nuestro programa:
ping 127.0.0.1 /n 10 /w 1000 > nul

6 comentarios:

  1. prueba con
    ping 127.0.0.1 > nul

    teoricamente si pones
    ping -1250 127.0.0.1 > nul
    tendria que tardar 5 segundos, pero Windows se lo pasa por el foro. Por lo menos tienes 3 segundos de espera.

    Mas info ping /?

    ResponderEliminar
  2. ups perdonar, he cometido un fallo
    ping -w 1250 127.0.0.1 > nul

    -w
    teoricamente aplica X para cada paquete, y por defecto son 4 paquetes que envia, son 5000/4=1250ms

    ResponderEliminar
  3. Buenas,

    Creo que la IP indicada no se puede utilizar, ya que siempre responde. Creo que la solución sería algo así:
    ping -n 1 -w 5000 172.18.9.9

    Donde 172.18.9.9 es una IP inaccesible. Entonces, si que aplica el tiempo de espera.

    ResponderEliminar
  4. Hola,

    La verdad es que no se si estais haciendo bien el comando, por que yo he probado en varios Windows y funciona tal y como viene en el articulo.

    Quizás el problema este en que os este fallando el comando, quitar la redirección a "null" para ver si da error (puede quede error al realizar un copy/paste ya que Windows no interpreta bien el "-" haciendo copy/paste de este articulo).

    Saludos.

    ResponderEliminar
  5. He modificado el comando para que no os de problemas con el copy/paste ahora si funciona

    ResponderEliminar