.bat 文件中的“rem”注释导致错误“此时 25 出乎意料”

js2*_*010 4 comments batch-file

这不是很奇怪吗?.bat rem 命令有某种转义码吗?

文件.bat:

rem https://sourceforge.net/p/jedit/bugs/4084/?limit=25
Run Code Online (Sandbox Code Playgroud)

运行它:

C:\Users\admin>file.bat
25 was unexpected at this time.

C:\Users\admin>https://sourceforge.net/p/jedit/bugs/4084/?limit=25
Run Code Online (Sandbox Code Playgroud)

我没有看到任何错误级别。

asc*_*pfl 5

rem命令支持一个参数,即/?,并且它是贪婪的。您的 URL 包含该字符串。

=是一个标准的标记分隔符(就像SPACE, TAB, ,, ;),因此余数似乎被解释为另一个(无效)命令。

将备注文本放在引号之间有帮助,因为/?不再检测到:

rem "https://sourceforge.net/p/jedit/bugs/4084/?limit=25"
Run Code Online (Sandbox Code Playgroud)

当你写这个:

rem/ https://sourceforge.net/p/jedit/bugs/4084/?limit=25
Run Code Online (Sandbox Code Playgroud)

/?部分也不再被检测到。然而,特殊字符,如&<>|()随后的认可。


另一种选择是使用::-style 注释,它实际上是一个无效标签(标签以 a :、 seegoto /?和开头call /?):

:: https://sourceforge.net/p/jedit/bugs/4084/?limit=25
Run Code Online (Sandbox Code Playgroud)

特殊字符在这里不是问题,但不能在带括号的代码块中使用。