El comentario "rem" en el archivo .bat provoca el error "25 fue inesperado en este momento"
¿No es esto raro? ¿Los comandos .bat rem tienen algún tipo de código de escape?
file.bat:
rem https://sourceforge.net/p/jedit/bugs/4084/?limit=25
Ejecutarlo:
C:\Users\admin>file.bat
25 was unexpected at this time.
C:\Users\admin>https://sourceforge.net/p/jedit/bugs/4084/?limit=25
No veo ningún nivel de error.
Respuestas
El rem
comando admite un argumento, a saber /?
, y lo codicia. Su URL contiene esa cadena.
El =
es un separador de tokens (como SPACE, TAB, ,
, ;
), por lo que el resto parece interpretarse como otro comando (no válido).
Poner el texto del comentario entre comillas ayuda aquí, ya /?
que ya no se detecta:
rem "https://sourceforge.net/p/jedit/bugs/4084/?limit=25"
Cuando escribe esto:
rem/ https://sourceforge.net/p/jedit/bugs/4084/?limit=25
la /?
porción ya no se detecta también. Sin embargo, los caracteres especiales como &
, <
, >
, |
, (
y )
son entonces reconocidos.
Otra alternativa es usar un ::
comentario de estilo, que en realidad es una etiqueta no válida (las etiquetas comienzan con a :
, ver goto /?
y call /?
):
:: https://sourceforge.net/p/jedit/bugs/4084/?limit=25
Los caracteres especiales no son un problema aquí, pero no deben usarse dentro de un bloque de código entre paréntesis.
Oh, eso es raro. Rem es como un comando regular que responde a /? en busca de ayuda, incluso si el /? está enterrado en algún lugar de otra cuerda. Me han dicho que poner la dirección entre comillas dobles lo soluciona.
C:\Users\admin>rem /?
Records comments (remarks) in a batch file or CONFIG.SYS.
REM [comment]
O toda esta cadena sin el 25 da el mismo resultado:
rem https://sourceforge.net/p/jedit/bugs/4084/?limit=
Records comments (remarks) in a batch file or CONFIG.SYS.
REM [comment]