![我想在 .bat 文件中写下一些注释。可以在注释中添加哪些代码,以便它们不会被视为要运行的命令?](https://linux22.com/image/1515178/%E6%88%91%E6%83%B3%E5%9C%A8%20.bat%20%E6%96%87%E4%BB%B6%E4%B8%AD%E5%86%99%E4%B8%8B%E4%B8%80%E4%BA%9B%E6%B3%A8%E9%87%8A%E3%80%82%E5%8F%AF%E4%BB%A5%E5%9C%A8%E6%B3%A8%E9%87%8A%E4%B8%AD%E6%B7%BB%E5%8A%A0%E5%93%AA%E4%BA%9B%E4%BB%A3%E7%A0%81%EF%BC%8C%E4%BB%A5%E4%BE%BF%E5%AE%83%E4%BB%AC%E4%B8%8D%E4%BC%9A%E8%A2%AB%E8%A7%86%E4%B8%BA%E8%A6%81%E8%BF%90%E8%A1%8C%E7%9A%84%E5%91%BD%E4%BB%A4%EF%BC%9F.png)
我想在 .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..