Cómo dormir durante cinco segundos en un archivo batch/cmd

La herramienta Snipping de Windows puede capturar la pantalla, pero a veces quiero capturar la pantalla después de cinco segundos, como por ejemplo, tomar una imagen que se muestra por la cámara web. (Ejecuta el script y sonríe a la cámara, por ejemplo).

¿Cómo puedo dormir durante 5 segundos en un archivo por lotes?

Solución

Un truco es utilizar (mal) el comando ping:

ping 127.0.0.1 -n 6 > nul

Explicación:

  • ping es una utilidad del sistema que envía solicitudes de ping. ping está disponible en todas las versiones de Windows.
  • 127.0.0.1 es la dirección IP de localhost. Se garantiza que esta dirección IP siempre se resuelve, es alcanzable y responde inmediatamente a los pings.
  • n 6` especifica que habrá 6 pings. Hay un retraso de 1s entre cada ping, así que para un retraso de 5s necesitas enviar 6 pings.
  • > nul suprime la salida de ping, al redirigirla a nul.
Comentarios (13)

El siguiente hack te permite dormir durante 5 segundos

ping -n 6 127.0.0.1 > nul

Como ping espera un segundo entre los pings, tienes que especificar uno más de lo que necesitas.

Comentarios (3)

Puede utilizar VBScript, por ejemplo, el archivo myscript.vbs:

set wsobject = wscript.createobject("wscript.shell")

do while 1=1
    wsobject.run "SnippingTool.exe",0,TRUE
    wscript.sleep 3000
loop

Archivo por lotes:

cscript myscript.vbs %1
Comentarios (1)