batch-file
Comentarios en archivos por lotes
Buscar..
Introducción
Los comentarios se utilizan para mostrar información en un script por lotes.
Sintaxis
movimiento rápido del ojo
&MOVIMIENTO RÁPIDO DEL OJO
::
& ::
Ir a: Etiqueta
Comments. You can also use |>< ,etc.
:Etiqueta
Uso de REM para comentarios
REM This is a comment
-
REM
es el comando oficial de comentarios.
Uso de etiquetas como comentarios
::This is a label that acts as a comment
El doble de colon ::
comentario se muestra arriba no está documentado como un comando comentario, pero es un caso especial de una etiqueta que actúa como un comentario.
Precaución : cuando las etiquetas se usan como comentarios dentro de un bloque de código entre corchetes o for
comando, el procesador de comando espera que cada etiqueta sea seguida por al menos un comando, por lo que cuando se realiza un salto a la etiqueta tendrá algo que ejecutar.
El shell cmd
intentará ejecutar la segunda línea incluso si está formateada como una etiqueta (y esto provoca un error ):
(
echo This example will fail
:: some comment
)
Cuando se trabaja dentro de bloques de código entre corchetes, es definitivamente más seguro usar REM para todas las líneas de comentarios.
Uso de variables como comentarios
También es posible utilizar variables como comentarios. Esto puede ser útil para evitar condicionalmente que se ejecuten comandos:
@echo off
setlocal
if /i "%~1"=="update" (set _skip=) Else (set _skip=REM)
%_skip% copy update.dat
%_skip% echo Update applied
...
Cuando se utiliza el fragmento de código anterior en un archivo por lotes, las líneas que comienzan con %_skip%
solo se ejecutan si se llama al archivo por lotes con la update
como parámetro.
Bloquear comentarios
El formato de archivo por lotes no tiene una sintaxis de comentarios de bloque, pero hay una solución fácil para esto.
Normalmente, cada línea de un archivo por lotes es leída y luego ejecutada por el analizador, pero se puede usar una instrucción goto
para saltar un bloque de texto sin formato (que se puede usar como un comentario de bloque):
@echo off
goto :start
A multi-line comment block can go here.
It can also include special characters such as | >
:start
Dado que el analizador nunca ve las líneas entre la goto :start
y :start
, puede contener texto arbitrario (incluidos los caracteres de control sin la necesidad de escapar) y el analizador no generará un error.
Comenta en la línea del código
Para comentar en la misma línea que el código, puede usar &::
o &rem
. También puedes usar &&
o ||
para reemplazar &
.
Ejemplo:
@echo off
echo This is a test &::This is a comment
echo This is another test &rem This is another comment
pause
Una curiosidad : el comando SET
permite comentarios en línea limitados sin &rem
:
set "varname=varvalue" limited inline comment here
Limitaciones:
- la sintaxis con comillas dobles
set "varname=varvalue"
oset "varname="
, - un comentario en línea no puede contener ninguna cita doble,
- cualquier
cmd
caracteres venenosos| < > &
debe ser correctamente escapado como^| ^< ^> ^&
, - los paréntesis
( )
deben escaparse correctamente como^( ^)
dentro de un bloque de código entre corchetes.
Lote y comentario híbrido WSF
<!-- : Comment
Esto funciona tanto con script por lotes como WSF. La etiqueta de cierre ( -->
), solo funciona en WSF.
Código | ¿Éxito tanto en el lote como en el FSM? |
---|---|
<!--: Comment | Cierto |
<!--: Comment --> | Falso: la etiqueta de cierre solo funciona para el FSM |
--> | Falso |