协慌网

登录 贡献 社区

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

我有一个批处理文件,它运行几个进行表修改的 python 脚本。

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

  2. 我还想添加注释,以便特别注意它们在运行之前需要在批处理文件中更新的变量。我看到我可以使用REM 。但看起来更像是在用户运行后更新用户的进度。

是否有更适当添加评论的语法?

答案

::REM

::   commenttttttttttt
REM  commenttttttttttt

但是(正如人们所说):

  • 如果使用内联,则需要添加&字符:
    your commands here & :: commenttttttttttt
  • 嵌套逻辑( IF/ELSEFOR循环等)内部使用REM因为::给出错误。
  • ::可能在setlocal ENABLEDELAYEDEXPANSION失败

rem命令确实用于评论。运行脚本后,它本身并不会更新任何人。但是,一些脚本作者可能会以这种方式使用它而不是echo ,因为默认情况下,批处理解释器会在处理之前打印出每个命令。由于rem命令不执行任何操作,因此可以安全地打印它们而没有副作用。要避免打印命令,请在其@echo off加上@ ,或者要在整个程序中应用该设置,请@echo off 。 (这是为了避免打印更多命令而echo off ; @是为了避免在回声设置生效之前打印命令。)

因此,在批处理文件中,您可以使用:

@echo off
REM To skip the following Python commands, put "REM" before them:
python foo.py
python bar.py

不,普通的旧批处理文件使用REM作为注释。 ECHO是在屏幕上打印内容的命令。

要 “注释掉” 文件的各个部分,您可以使用GOTO 。所有这些命令 / 技术的示例:

REM it starts here the section below can be safely erased once the file is customised
ECHO Hey you need to edit this file before running it!  Check the instructions inside
ECHO Now press ctrl-c to interrupt execution or enter to continue
PAUSE
REM erase the section above once you have customised the file
python executed1.py
ECHO Skipping some stuff now
GOTO End
python skipped1.py
python skipped2.py
:END
python executed2.py

我能说什么?批处理文件是很久以来的遗留物,它们笨重而丑陋。

您可以在本网站上阅读更多内容

编辑:稍微修改了一下示例,让它包含您正在寻找的元素。