Batch file 使用setlocal enableDelayedExpansion写入文件错误

Batch file 使用setlocal enableDelayedExpansion写入文件错误,batch-file,Batch File,我需要一个脚本来编写具有以下输出的文件: rem ===[A]==========[B]==========[C] # =========[D]==========[E]==========[F] # =========[G]==========[H]==========[I] set "A1= " & set "B1= " & set "C1= " # & set "D1= " & set "E1= " & set "F1= " # & set

我需要一个脚本来编写具有以下输出的文件:

rem ===[A]==========[B]==========[C] # =========[D]==========[E]==========[F] # =========[G]==========[H]==========[I] 
set "A1= " & set "B1= " & set "C1= " # & set "D1= " & set "E1= " & set "F1= " # & set "G1= " & set "H1=5" & set "I1= "
在这种情况下,我想使用EnableDelayedExpansion
我写了这个剧本:

setlocal EnableDelayedExpansion
set file="test.bat"
echo rem ===[A]==========[B]==========[C] # =========[D]==========[E]==========[F] # =========[G]==========[H]==========[I] >> %file%
echo set "A1= " ^^& set "B1= " ^^& set "C1= " # ^^& set "D1= " ^^& set "E1= " ^^& set "F1= " # ^^& set "G1= " ^^& set "H1=5" ^^& set "I1= " >> %file%
但输出只有一行:

rem ===[A]==========[B]==========[C] # =========[D]==========[E]==========[F] # =========[G]==========[H]==========[I]

如何使用EnableDelayedExpansion使输出与我想要的一样?

在转义特殊字符时使用一个
^
而不是两个。将脚本中的最后一行更改为:

echo set "A1= " ^& set "B1= " ^& set "C1= " # ^& set "D1= " ^& set "E1= " ^& set "F1= " # ^& set "G1= " ^& set "H1=5" ^& set "I1= " >> %file%