Título: Descubrimiento: Nueva forma de poner comentarios. Publicado por: leogtz en 15 Noviembre 2008, 16:43 pm Bueno esta forma nunca la habia visto, la acabo de descubrir jugando con ciertos caracteres, se usa asi :
Código: @echo off rem Aqui va todo el codigo (Todo esto no será ejecutado Es importante no cerrar el parentesis, ya que si se cierra sera ejecutado lo que esta dentro del parentesis. Debe de usarse solo al final de los codigos. Hasta ahorá se podian usar comentarios de estas formas : Código: @echo off REM COMENTARIO ::COMENTARIO % COMENTARIO % PAUSE EXIT /B Una curiosidad : Cuando usamos un comentario de este tipo :: en un FOR, saldrá error, prueben esto : Código: @ECHO OFF FOR %%X IN (NOTEPAD.EXE) DO ( ::COMENTARIO SOLO ) Una explicación sería que ::COMENTARIO SOLO, no es tomado en cuenta, y dará error al tener los () solos. Es igual a hacer esto : Código: @ECHO OFF FOR %%X IN (NOTEPAD.EXE) DO () También se obtiene error en el IF : Código: @ECHO OFF En resumen los comentarios quedarían asi : SET A=1 IF %A%==1 ( ECHO HOLA ::ALGO ) PAUSE>NUL Código
Cita de Rob Van der Woude : Citar I must confess, this tip by Leo Gutierrez Ramirez baffled me. I didn't expect it to work, but it does. See for yourself: @ECHO OFF REM Code: ECHO Hello REM Comments: (COMMENT HELLO! HI! The trick is not in the exclamation marks, it is the fact that the parenthesis opens a "code block" which is never closed, and thus seems to be ignored completely by the command interpreter. As Leo said: a useful way to add comments at the end of a batch file. Thanks Leo Código: http://www.robvanderwoude.com/clevertricks.html Título: Re: Descubrimiento: Nueva forma de poner comentarios. Publicado por: carlitos.java en 16 Noviembre 2008, 17:16 pm Felicidades Leo por el descubrimiento.
Yo no sabía lo de % comentario % gracias. Título: Re: Descubrimiento: Nueva forma de poner comentarios. Publicado por: _carlos_ en 13 Diciembre 2008, 22:44 pm Estuve analizando que (
no es un comentario propiamente tal, porque con esa orden comienzas a cargar lo que venga a continuación del ( y cuando encuentre el ) ejecutará lo que hayas puesto, pero como nunca llega a encontrar el ) y encuentra el carácter EOF, la ejecución no se realiza, pero si se cargó en memoria. Así también podríamos considerar comentarios cosas como estas: Código: goto :eof estos son comentarios finales Código: if pepsi==cocacola ( esto son comentarios ) Lo del ( es lo mismo que: Código: @^ ec^ ho^ ^ hol^ a @^ pau^ se^ si guardas ese código en un bat, y colocas un salto de línea al final se ejecutará, pero, si el código lo terminas justo en el^ y lo guardas, no ejecutarás nada, en este caso, la ejecución de los datos se hace en el salto de línea, y con ^ indico que ingresaré más comandos, ahora si te fijas si le borras el ^ al se, coloques o no salto de línea en el archivo, lo ejecutarás. Saludos. Título: Re: Descubrimiento: Nueva forma de poner comentarios. Publicado por: leogtz en 14 Diciembre 2008, 00:38 am Estuve analizando que ( no es un comentario propiamente tal Exacto, yo jamas dije que fuera un comentario, por eso el titulo de post "Nueva forma de poner comentarios". Por eso tambien remarque : a useful way to add comments at the end of a batch file. El unico comando para poner comentarios es REM, ni si quiera ::, ya que puede generar problemas con otros comandos. El ( Abre un bloque de codigo, que solo será ejecutado hasta que encuentre el )(http://mx.geocities.com/leorocko13/Coment.JPG) Pero igual tendrian la misma funcionalidad : Código: goto:eof Hola exit Hola Solo que a mi me resulta mas legible usar ( al final de un codigo. Título: Re: Descubrimiento: Nueva forma de poner comentarios. Publicado por: _carlos_ en 14 Diciembre 2008, 02:11 am Yo diría que el resultado es prácticamente igual, en el sentido de que no ejecutas, pero con tu método cargas cosas en memoria, aunque nunca las ejecutarás, pero de que las cargas, las cargas.
En cuanto a los :: yo los considero verdaderos comentarios, pues cmd.exe no lee las líneas que comienzen con eso, y se supone que los comentarios, son comentarios, y no deberían mostrarse al ejecutar los scripts. Ejemplo Código: :: dos puntos, uno arriba y otro abajo. En este ejemplo se muestra remark comentario, pero el "dos puntos, uno arriba y otro abajo." no, si se desea que no muestre con el rem al igual que con los :: se debe usar @rem pero aún no es igual a :: pues cmd.exe con rem lee la línea.rem remark comentario pause Por ejemplo, esto funciona: Código: if 1==1 ( pero esto no:rem ) pause Código: if 1==1 ( pues considera que el cuerpo del if no tiene nada.:: ) pause Entonces concluyo que en programación existen similitudes, pero no son lo mismo si comenzamos a hilar finito. Al igual que cd /d consigue el efecto de pushd, pero con la diferencia de que pushd va guardando en memoria la ruta del directorio anterior, es decir, ocupa memoria, y también sirve para abrir rutas de red. En realidad los sinónimos no existen. |