Bien explicaré brevemente porqué :: es usado para comentar palabras en vez de el comando rem, y porqué funciona. Si es algo no documentado o si tiene una explicación técnica.
Por ejemplo:
:: esto es un comentario
no es lo mismo que:
rem esto es un comentario
Se ha dicho y yo también que rem lee la línea, y "::" no
Sin embargo diré qué es realmente "::"
"::" Es una etiqueta sin nombre.
Las etiquetas en cmd.exe comienzan con ":" y aunque no se les coloque cmd.exe las finaliza con ":"
cmd.exe solo lee los primeros 8 carácteres de una etiqueta, y luego las finaliza con ":"
Entonces
:: esto es un comentario
No es un comentario, sino que estamos agregando una etiqueta, aunque sin nombre, sin identificador.
La razón de los ":" es
: para indicar el inicio de la etiqueta
: explícito para indicar el fin de la etiqueta, y que cmd.exe no considere los primeros carácteres del "comentario" como parte del nombre de la etiqueta.
Ejemplo:
@echo off
goto :estoesun:
pause
:estoesun:comentario
echo si
pause
El verdadero comentario comienza despues del segundo ":"
Por eso :: es una etiqueta sin identificador, por eso si uno coloca: goto :: cmd.exe arroja el siguiente error:
El sistema no encuentra la etiqueta por lotes especificada
Escrito por Carlos.
bienn :)