timeout - Espera

Mantenido el
Tabla de contenidos

En un archivo por lotes, a veces es necesario esperar un tiempo determinado, como sleep o wait en otros lenguajes de programación.

Por ejemplo, puede que quieras iniciar una aplicación con el comando start y esperar unos segundos a que esté lista antes de pasar al siguiente paso.

Para esperar un tiempo determinado en el símbolo del sistema o en un archivo por lotes, se usa el comando timeout. Aquí se explica su uso, desde lo básico hasta las opciones, con ejemplos de código.

Uso básico del comando timeout

El uso del comando timeout es el siguiente:

timeout /t <segundos> [/nobreak]

La opción /t es obligatoria. Si se ejecuta sin ella, se produce el siguiente error:

- □ ×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>
timeout
ERROR: Sintaxis no válida.
Escriba “TIMEOUT /?” para ver el uso.

En /t se especifica el número de segundos de espera, en el rango de -1 a 99999.

Por ejemplo, para esperar 10 segundos:

- □ ×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>
timeout /t 10
Esperando 10 segundos, presione una tecla para continuar …

El comando timeout no siempre espera el tiempo completo.

El comportamiento correcto es «esperar el tiempo especificado si el usuario no hace nada». Aunque se especifique timeout /t 10, si el usuario pulsa una tecla, la espera termina y se ejecuta el siguiente comando.

Para desactivar este comportamiento, se usa la opción /nobreak.

- □ ×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>
timeout /t 10 /nobreak
Esperando 10 segundos, presione CTRL+C para salir …

Con /nobreak, ninguna tecla salvo Ctrl + C puede interrumpir la espera.

Al pulsar Ctrl + C se interrumpe el propio archivo por lotes (se pregunta «¿Desea terminar el trabajo por lotes (S/N)?»).

Ejemplos del comando timeout

Esperar indefinidamente hasta que el usuario actúe

Al especificar -1 en la opción /t, se espera indefinidamente hasta que el usuario pulse una tecla.

- □ ×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>
timeout /t -1
Presione una tecla para continuar …

También es útil al final de un archivo por lotes para mantener la ventana abierta y que el usuario pueda leer el resultado.

Añadir un tiempo de espera entre comandos en un archivo por lotes

Para añadir un tiempo de espera entre comandos, se escribe lo siguiente:

@echo off
setlocal

echo Proceso 1

timeout /t 10

echo Proceso 2

endlocal

Como no se especifica /nobreak, la espera termina cuando el usuario pulsa una tecla y se ejecuta Proceso 2.

Esperar siempre el tiempo completo entre comandos

Para evitar que las teclas interrumpan la espera, se especifica la opción /nobreak.

@echo off
setlocal

echo Proceso 1

timeout /t 10 /nobreak

echo Proceso 2

endlocal

Cuando el comando timeout no funciona

El comando timeout puede fallar con el siguiente error cuando se usa redirección de entrada (por ejemplo, timeout /t 10 < input.txt) o en entornos sin entrada estándar:

- □ ×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>
ERROR: No se admite la redirección de entrada, se cerrará el proceso inmediatamente.

En estos casos, se puede esperar usando ping al propio equipo (la dirección de bucle invertido 127.0.0.1). Como ping envía un paquete por segundo, en -n se especifica el número de segundos de espera más 1.

ping 127.0.0.1 -n 11 > nul

Lo anterior espera unos 10 segundos.

Si PowerShell está disponible, también se puede esperar con Start-Sleep.

powershell -Command "Start-Sleep -Seconds 10"

Prueba de confirmación

Problema de práctica

¿Qué comando espera indefinidamente hasta que el usuario realice alguna acción?

Elige una respuesta.

  1. timeout
  2. timeout /t -1
  3. timeout /t 9999 /nobreak
#Línea de comandos #Archivos por lotes #Comando #Espera