batch-file
Añadir retraso al archivo por lotes
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.