我想在 .bat 文件中写下一些注释。可以在注释中添加哪些代码,以便它们不会被视为要运行的命令?

我想在 .bat 文件中写下一些注释。可以在注释中添加哪些代码,以便它们不会被视为要运行的命令?

我想在 .bat 文件中写下一些注释。可以在注释中添加哪些代码,以便它们不会被视为要运行的命令?

答案1

REM在 cmd.exe 脚本中,使用(或@REM强制禁用回显)添加注释。

rem This is a comment.

虽然不是技术上注释前缀,::也可以以相同的方式使用(它定义了一个未使用的“goto”标签):

:: This is a comment.

警告

当标签用作括号代码块或命令中的注释时,命令处理器希望每个标签后面至少跟一个命令,因此当跳转到标签时,它将执行一些命令。

即使第二行cmd被格式化为标签(并且这会导致错误):

(
echo This example will fail
:: some comment
)

rem在带括号的代码块中工作时,对所有注释行使用肯定更安全。

来源使用标签作为评论

您还可以使用变量作为注释

也可以使用变量作为注释。这对于有条件地阻止命令执行很有用:

@echo off 
setlocal
if /i "%~1"=="update" (set _skip=) Else (set _skip=REM)
%_skip% copy update.dat 
%_skip% echo Update applied 
... 

在批处理文件中使用上述代码片段时,%_skip%仅当以批处理文件 update作为参数调用时,才会执行以 开头的行。

来源使用变量作为注释

答案2

如果最后一个代码是 Cmd,则只需将其附加到文件末尾即可,Goto :EofCmd 不关心代码永远不会到达的行。使用唯一标记,批处理本身可以确定文本的开头并使用更多内容进行显示。

@Echo off
For /f "tokens=1 delims=:" %%A in (
  'findstr /N "^@@@" "%~f0"'
  ) Do Set TxtBegin=%%A
:: Echo TxtBegin=%TxtBegin%
More +%TxtBegin% "%~f0"
Pause
Goto :Eof
@@@Begin of text
Here Comes the Sun
The Beatles
Here comes the sun (doo doo doo doo)
Here comes the sun, and I say
It's all right
Little darling, it's been a long cold lonely winter
Little darling, it feels like years since it's been here
Here comes the sun
Here comes the sun, and I say
..snip..

相关内容