Buscar..


Introducción

Este tema le enseñará una de las muchas cosas útiles que debe saber en el lenguaje de scripting, archivo por lotes; Agregar un retraso / pausa / tiempo de espera a su archivo por lotes.

Se acabó el tiempo


Se acabó el tiempo

La forma más sencilla de hacer una demora o pausa durante un cierto tiempo, es con el comando estándar TIMEOUT . Para hacer un tiempo de espera que dura exactamente un minuto escribimos:

timeout /t 60

Ahora, ¿qué está pasando aquí?

En primer lugar, usamos el comando TIMEOUT con el parámetro /T (que simplemente significa tiempo de espera) y luego especificamos la cantidad de segundos a esperar. En este caso ... 60 segundos.

Timeout con el parámetro / NOBREAK

Si tomamos el ejemplo de antes y lo ejecutamos en un archivo BATCH: timeout /t 60 y mientras espera esos 60 segundos, realmente puede interrumpir el timeout presionando cualquier tecla del teclado. Para evitar esto, simplemente agregamos el parámetro /NOBREAK al final del mismo.

timeout /t 60 /nobreak

Al hacer esto, tendrá un tiempo de espera de 60 segundos y, si desea interrumpir el tiempo de espera, deberá presionar (CTRL-C) en el teclado.

Tiempo de espera silencioso

Cuando está haciendo un tiempo de espera se mostrará:

Waiting for X seconds, press a key to continue ...
or 
Waiting for X seconds, press CTRL+C to quit ... [This is with the /NOBREAK parameter]

Para ocultar el mensaje, use el argumento NUL (Para la explicación de NUL : haga clic aquí )

timeout /t 60 > nul
or
timeout /t 60 /nobreak > nul

Pausa

Para hacer que su script se detenga, simplemente use el comando PAUSE .

PAUSE

Esto mostrará el texto Press any key to continue . . . A continuación, agregue una nueva línea en la entrada del usuario.

Digamos que queremos crear un programa "Hello World" y después de hacer clic en algo en nuestro teclado, queremos que salga del programa con el comando EXIT .

echo Hello World
pause
exit

Aquí usa el comando ECHO para decir "Hola Mundo". Luego usamos el comando PAUSE que muestra Press any key to continue . . . y luego usamos el comando EXIT para terminar la secuencia de comandos BATCH actual.

Cuando está en pausa se mostrará:

Press any key to continue . . .

Ocultar el mensaje "Presione cualquier tecla para continuar ...

Para ocultar el mensaje, redirigimos la salida a un dispositivo especial llamado nul . Esto no es realmente un dispositivo real, pero todo lo que le enviemos se desecha.

pause > nul

Silbido


Silbido

Uno de los comandos más utilizados para demorar durante cierto tiempo es hacer ping .

Uso básico

PING -n 1 -w 1000 1.1.1.1

REM the -n 1 flag means to send 1 ping request.
REM the -w 1000 means when the IP(1.1.1.1) does not respond, go to the next command
REM 1.1.1.1 is an non-existing IP so the -w flag can ping a delay and go to next command

Esto generaría lo siguiente en su archivo / consola por lotes:

C:\Foo\Bar\Baz>ping -n -w 1000 1.1.1.1

Pinging 1.1.1.1 (Using 32 bytes of data)
Request timed out

Ping statistics for 1.1.1.1
    Packets: Sent = 2,Received = 0, Lost = 1(100% loss)

Ocultar el texto con eco

Simplemente agregue >nul en la parte posterior del comando para redirigirlo a nulo.

ping -n w 1000 1.1.1.1 >nul

Esto no produciría nada.

Dormir


Dormir

En sistemas Windows más antiguos, el timeout no está disponible. Sin embargo, podemos usar el comando sleep .

Uso

sleep 1

Muy autoexplicativo; dormir durante 1 segundo. Sin embargo, sleep modo de espera es un comando deperactado y debe reemplazarse por el tiempo de espera .

Disponibilidad

Este comando está disponible en el antiguo sistema de Windows. También SLEEP.exe se incluye en 2003 Resource Kit.

Para usar sleep.exe , coloque el archivo ejecutable en la carpeta %Windir%\System32 . Entonces puedes usarlo como comando normal.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow