我想在 .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 :Eof
Cmd 不关心代码永远不会到达的行。使用唯一标记,批处理本身可以确定文本的开头并使用更多内容进行显示。
@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..