timeout - Espera
En ocasiones, al utilizar archivos por lotes, es necesario esperar durante un tiempo determinado. Por ejemplo, si desea escribir un archivo por lotes que copie un archivo y espere hasta que se complete la copia. En esta página, se explica de manera clara y sencilla cómo esperar durante un tiempo determinado en la línea de comandos y en los archivos por lotes con el comando timeout, desde el uso básico hasta cómo configurar las opciones.
Uso básico del comando timeout
Para implementar un proceso de espera durante un tiempo determinado en la línea de comandos, se utiliza el comando timeout
.
Se utiliza cuando se desea establecer un tiempo de espera entre dos comandos consecutivos que se ejecutan en una secuencia en un archivo por lotes.
La sintaxis del comando timeout
es la siguiente:
timeout /t <segundos a esperar> [/nobreak]
El comando timeout
requiere la especificación de opciones y si se ejecuta sin ellas, se producirá un error como se muestra a continuación.
Para usar el comando timeout
, funciona especificando la opción /t
y el número de segundos a esperar.
Por ejemplo, si desea esperar 100 segundos, use el siguiente comando.
Es posible que haya notado que el comando timeout
no siempre espera exactamente el tiempo especificado.
La operación correcta es “esperar el tiempo especificado si el usuario no realiza ninguna operación”.
Por lo tanto, incluso si especifica timeout /t 100
, el usuario puede interrumpir el tiempo de espera ingresando una tecla.
Para desactivar esta función, especifique la opción /nobreak
.
Al especificar esto, el usuario no puede interrumpir el tiempo de espera ingresando una tecla.
Sin embargo, si presiona la tecla Ctrl + C, la ejecución del archivo por lotes también se detendrá.
Ejemplos con el comando timeout
Esperar indefinidamente hasta que el usuario realice una acción
Puede esperar indefinidamente hasta que el usuario realice una acción especificando -1
en la opción /t
.
Establecer un tiempo de espera entre procesos en un archivo por lotes
Si desea establecer un tiempo de espera entre procesos en un archivo por lotes, puede hacerlo de la siguiente manera:
@echo off
setlocal
echo Proceso 1
timeout /t 100
echo Proceso 2
endlocal
En el caso anterior, no se especificó la opción /nobreak
, por lo que el tiempo de espera se puede interrumpir por la acción del usuario.
Establecer un tiempo de espera entre procesos en un archivo por lotes
Para evitar interrupciones en el tiempo de espera, especifique lo siguiente:
@echo off
setlocal
echo Proceso 1
timeout /t 100 /nobreak
echo Proceso 2
endlocal