Porqué :: comenta las líneas

Iniciado por _carlos_, 24 Diciembre 2008, 08:10 AM

0 Miembros y 1 Visitante están viendo este tema.

_carlos_

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.


<[(x)]>

<[(x)]>