HOWTO · Batch
Añadir comentarios en el Batch Script
Este tutorial ofrece una guía completa sobre cómo agregar comentarios en scripts de Batch. Conoce los métodos disponibles, incluidos el comando REM y los dos puntos dobles, y por qué GOTO —que redirige la ejecución— no es un método de comentario. Descubre las mejores prácticas para escribir comentarios eficaces que aclaren tu código para ti y para los demás.
En esta página
Al añadir comentarios a un archivo Batch de Windows (.bat o .cmd), usa REM: es la opción más clara y fiable. También es habitual usar una línea que comienza con :: como comentario, pero CMD la interpreta como una etiqueta y su ubicación tiene algunas limitaciones. Usa cualquiera de las dos formas para explicar la intención; ninguna cambia lo que debe hacer el script.
Elegir un tipo de comentario en Batch: REM o ::
REM es un comando cuya función es indicar un comentario. Es la opción estándar y la más recomendable cuando el comentario está dentro de un grupo de comandos entre paréntesis. La forma :: es una convención similar a una etiqueta: CMD la trata como una etiqueta, no como un comando de comentario específico. Es concisa para notas independientes, pero las etiquetas pueden afectar al análisis de bloques y al flujo de control. Para que los scripts sean predecibles, prefiere REM cuando la sintaxis circundante sea compleja.
Ambas formas son específicas de Batch para Windows CMD. No son sintaxis de comentarios portable a PowerShell, Bash ni otros shells. Siempre que sea posible, escribe los comentarios en líneas propias y céntralos en explicar por qué hace falta un comando o de qué supuesto depende.
Añadir comentarios de una sola línea con REM o ::
El siguiente ejemplo de Windows CMD es un patrón breve que puedes guardar como comments.bat. Incluye una línea con REM y otra con :: antes de los comandos para que puedas comparar ambas formas en contexto. El ejemplo se ejecutó correctamente y mostró las dos líneas de estado que aparecen a continuación. Las etiquetas visibles en los bloques de código y de salida no modificados permanecen en inglés.
@echo off
REM Describe the next action for the person maintaining this file.
echo Preparing the report
:: This label-like line is commonly used as a short note.
echo Report ready
Preparing the report
Report ready
Cuando CMD encuentra un comando REM, ignora el texto del comentario como instrucción. Una línea :: se trata como una etiqueta y se suele usar con el mismo propósito visual. Los comandos que aparecen después de cada nota siguen ejecutándose. El texto de cualquiera de los dos comentarios debe evitar dar a entender que el script realizó una tarea que en realidad no hizo.
Gestionar comentarios dentro de grupos de comandos y después de los comandos
Puede haber un comentario entre comandos. Por ejemplo, una línea REM puede ir entre una línea IF y los comandos que la siguen. Dentro de un grupo entre paréntesis, escribe REM en una línea aparte y evita en el comentario los caracteres que puedan afectar al análisis del grupo completo por parte de CMD, especialmente los paréntesis sin pareja. CMD puede expandir %name% al analizar un bloque de comandos entre paréntesis, incluso si aparece en una línea REM. El comentario se descarta en lugar de mostrarse, pero la expansión aún puede alterar el análisis del bloque; mantén esas notas sencillas y evita incluir expresiones con porcentajes. Procura que los comentarios dentro de bloques sean claros y simples.
Para añadir una nota breve después de un comando, sepáralos con & y usa REM, como en echo Preparing the report & REM this command prints the status. El ampersand inicia otro comando en la misma línea; no hace que cualquier forma de comentario sea segura en todos los contextos. No añadas :: al final de un comando ni pongas comentarios después de un comando IF si su cláusula ELSE debe seguir asociada a él. Si una línea combina sintaxis condicional, un separador de comandos o un grupo entre paréntesis, coloca la nota en su propia línea. Así, la estructura de los comandos resulta más fácil de leer y hay menos sorpresas durante el análisis.
Escribir notas de varias líneas de forma segura
Batch no tiene un delimitador nativo para comentarios en bloque. La forma más sencilla de escribir una nota de varias líneas es anteponer REM a cada una (o :: si son notas independientes y sencillas). Es preferible repetir REM cerca de grupos de comandos porque es un comando real y su propósito es explícito.
GOTO redirige la ejecución a una etiqueta, por lo que cambia el flujo de control del script y no es sintaxis de comentarios. No lo uses para marcar un bloque como comentario; repite REM en cada línea de la nota multilínea.
En general, elige REM; reserva :: para notas independientes similares a etiquetas cuando la estructura circundante sea sencilla, y mantén los comentarios en líneas separadas junto a comandos condicionales o agrupados. Estos ejemplos son para archivos Batch de Windows CMD; no los copies como sintaxis de comentarios en otro shell.