如何在批处理/cmd中添加注释(注释掉)?

1134

我有一个批处理文件,运行了几个修改表格的Python脚本。

  1. 我希望用户注释掉他们不想运行的1-2个Python脚本,而不是从批处理文件中删除它们(这样下一个用户就知道这些脚本存在作为选项!)

  2. 我还想添加注释,特别提醒用户在运行之前需要更新的批处理文件中的变量。我看到可以使用REM。但是似乎这更适用于在用户运行之后更新用户进展情况。

是否有一种语法更适合添加注释?


8
请参见此处的优秀答案:https://dev59.com/nmct5IYBdhLWcg3wCJB- - ndemou
3
你可以使用“Rem Sth”命令或使用这个标记:“:: Sth”。 - user9556248
我更喜欢使用以下方式进行编程注释:
  • REM 用于注释
  • &REM 用于行内注释
- Jorge Cribb
12个回答

1

这是一个老话题,我想在这里添加我的理解,以扩展这个有趣的话题的知识。

REM和::之间的关键区别是:

REM本身是一个命令,而::不是。

我们可以将::视为一个标记,一旦CMD解析器在一行中遇到第一个非空格字符是这个::标记,它就会跳过整行并读取下一行。这就是为什么REM应该至少在其后面加上一个空格才能作为该行的注释功能,而::则不需要在其后面加上任何空格。

从以下FOR语法可以最好地理解REM本身是一个命令

基本的FOR语法如下:

FOR %v in (set) DO <Command> [command param] 

这里的<Command>可以是任何有效的命令,所以我们可以将以下有效的命令行写成rem是一个命令。

FOR %i in (1,2,3) DO rem echo %i

然而,我们无法将以下行写成::,因为::不是一个命令。

FOR %i in (1,2,3) DO :: echo %i

4
从技术上讲,:: 是一个(无效的)标签(这解释了它的行为),因此不应使用它(尽管它仍然很常见)。 - Stephan

1
你可以使用::rem进行注释。
在注释时,使用::,因为它的速度是rem的三倍。例如,这里有一个示例。
只有当注释在if语句中时,才使用rem,因为冒号可能会导致错误,因为它们是标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接