.bat 文件不能与顶部的注释一起使用?

.bat 文件不能与顶部的注释一起使用?

我有一个 .bat 文件,用于将多个文件合并为一个新文件,它之前看起来像这样:

copy /b ^
E:\file1.txt+^
E:\file2.txt+^
E:\file3.txt ^
E:\output.txt
:: comment

效果很好。然后我想在代码上方添加注释,所以我将其更改为:

:: comment
:: comment

copy /b ^
E:\file1.txt+^
E:\file2.txt+^
E:\file3.txt ^
E:\output.txt
:: comment

它不再起作用了。当我运行它时,终端上没有任何内容打印出来。

如果我删除顶部的评论,它就会立即重新开始工作。

为什么会发生这种情况?

编辑:

我想我不应该把代码简化这么多。文件顶部的注释之一实际上是这样的:

:: E:\file3.txt+^

玩弄它后,我发现注释中的字符+^会导致文件无法工作。

我也尝试REM在这行上使用,但结果打印出了错误。所以看起来有些字符在注释中根本就不能用?

答案1

行尾的字符^充当行的延续。(它通过转义换行符来实现)。

之后的行继续不起作用REM(除了少数例外) - 之后的所有字符REM通常会被忽略。

行继续在之后起作用::,因此整个脚本将变成一个大注释。

^您可以通过删除注释中的尾部来修复此问题,或者在 后添加另一个字符^,或者使用REM而不是::

在某些情况下, REM 注释可以延续到下一行:

@echo off
:: This is a multi-line comment ^
This line is a continuation of the comment above

:: This comment ^ does not continue
echo This line 1 is executed

rem This comment does not continue ^
echo This line 2 is executed

rem.This is a multi-line comment ^
This is a continuation of the comment above

rem^ This is a multi-line comment ^
This is a continuation of the comment above

rem^,This is a multi-line comment ^
This is a continuation of the comment above

rem^;This is a multi-line comment ^
This is a continuation of the comment above

rem^=This is a multi-line comment ^
This is a continuation of the comment above

rem^:This is a multi-line comment ^
This is a continuation of the comment above

我不知道有任何一种注释样式无论内容如何都是普遍安全的。例如,包含无效扩展语法的注释将导致致命的语法错误!

rem %~x This comment containing invalid expansion results in a fatal error
echo This line is never reached

样式::注释也遭遇同样的命运

:: %~x This comment containing invalid expansion results in a fatal error
echo This line is never reached

答案2

::不是评论,而是标签。

要发表评论,请以以下内容开头,Rem而不是::

“Rem” 是 remark 的缩写。

相关内容