HOWTO · Batch

La palabra clave PAUSE en Batch Script

Este tutorial mostrará el uso de la palabra clave PAUSE en Batch Script.

En esta página

Un archivo por lotes de Windows puede cerrar su ventana de comandos en cuanto termina, sin dejar tiempo suficiente para leer los resultados. Usa PAUSE cuando quieras que el script espere a que se pulse una tecla en un punto concreto, o inícialo con CMD /K si quieres que la ventana de comandos permanezca abierta después de que termine el script. Son comportamientos distintos: uno pausa la ejecución dentro del script y el otro mantiene disponible la sesión de comandos.

Cómo funciona el comando PAUSE

En Windows CMD, PAUSE muestra el aviso estándar «Press any key to continue . . .» y espera a que se pulse una tecla. Al pulsar una tecla normal, se ejecuta el siguiente comando por lotes. Ctrl+C o Ctrl+Break pueden interrumpir el archivo por lotes y activar su mecanismo de terminación en vez de limitarse a continuar. Por ejemplo, un script puede mostrar un resultado, esperar mientras la persona lo lee y después imprimir una línea de cierre. Los comandos son @echo off, echo Report finished., pause y echo The script continues here.

La línea de comandos pause resulta útil después de un paso cuyo resultado debe revisar alguien. No comprueba si esa persona está de acuerdo con una opción: al pulsar una tecla normal, el script continúa; Ctrl+C o Ctrl+Break pueden interrumpirlo y activar el mecanismo de terminación. No lo uses como confirmación de seguridad antes de eliminar archivos o cambiar la configuración del sistema. También conviene evitar PAUSE en scripts que se ejecutan sin una persona presente, porque esperarán indefinidamente la entrada del teclado.

Los ejemplos muestran la sintaxis de Windows CMD y no se ejecutaron durante la preparación de este artículo. Si se inicia con un doble clic, un archivo por lotes puede cerrar su ventana cuando terminan los comandos; una pausa dentro del script puede mantenerla visible hasta que se pulse una tecla.

Mostrar un mensaje personalizado antes de PAUSE

PAUSE muestra un aviso fijo y no admite texto personalizado. Para dar contexto a la persona usuaria, imprime un mensaje aparte con echo y, después, oculta el aviso fijo con pause >nul. Por ejemplo, usa echo Review the report above, then press a key to continue. y, a continuación, pause >nul.

El comando echo proporciona el texto personalizado, mientras que >nul redirige la salida de PAUSE para ocultar su aviso estándar. Este patrón resulta útil si el mensaje debe indicar qué hay que leer o qué hará el siguiente paso del script. Redacta instrucciones precisas: pulsar una tecla solo reanuda el archivo por lotes; no significa que la persona haya aprobado una acción.

Si el aviso estándar te resulta útil, omite >nul y usa pause sin más. En ambos casos, coloca la pausa después de la información que la persona necesita ver y antes de los comandos que deben esperar.

Mantener abierta la ventana de comandos con CMD /K

Usa CMD /K cuando quieras que una ventana de comandos permanezca abierta después de que termine un archivo por lotes. Por ejemplo, desde el cuadro de diálogo Ejecutar u otro iniciador de comandos, escribe cmd /k ""C:\Scripts\report.bat"" y sustituye la ruta por la ubicación de tu archivo .bat. El procesamiento de la cadena de comandos de /K en CMD consume el par de comillas exterior y deja entre comillas la ruta del archivo por lotes, de modo que una ruta con espacios se trata como un único nombre de comando. CMD /K ejecuta el comando y después deja abierto el intérprete de comandos para que puedas revisar la salida o introducir otro comando.

Esta opción no añade una pausa dentro del archivo por lotes. El script ejecuta sus comandos sin esperar en una línea concreta; al terminar el comando, la ventana de comandos sigue disponible. El ejemplo muestra sintaxis de Windows CMD y no se ejecutó durante la preparación de este artículo.

Elegir el método adecuado para un script por lotes

Elige PAUSE cuando alguien deba leer un mensaje o un resultado en un punto concreto antes de que se ejecute la línea siguiente. Explica brevemente el motivo de la espera antes de la pausa. Usa pause >nul si basta con el texto de tu propio echo, o pause sin más si el aviso estándar resulta útil. Evita añadir pausas a tareas rutinarias desatendidas, ya que quizá no haya nadie para pulsar una tecla.

Elige CMD /K cuando el objetivo principal sea mantener abierta la ventana de comandos después de que termine el archivo por lotes. Puede resultar práctico al iniciar un script desde un lanzador de comandos y luego revisar su salida final. No detiene la ejecución para esperar una respuesta de la persona ni convierte una pulsación de tecla en una confirmación.

Ambos métodos se aplican a archivos por lotes de Windows que se ejecutan en CMD. Ninguno indica si una operación anterior se completó correctamente; si el script debe decidir según el éxito o el fallo, comprueba por separado el resultado del comando. Usa una pausa deliberada dentro del script para que alguien lea un paso y CMD /K para dejar abierta la sesión de comandos y poder revisar la salida o introducir más comandos.