Batch file cmd文件中的echo产生不正确的结果
My.cmd文件包含:Batch file cmd文件中的echo产生不正确的结果,batch-file,Batch File,My.cmd文件包含: set /A "@zz+=1" set @zz echo:"%%@zz%%" 产生: @zz=4 "%@zz%" set@zz显示了正确填充的变量,但是echo的行为就好像它不在那里一样。奇怪的是,当从命令提示符下运行时,这些命令工作得很好。实际上,批处理正在做它应该做的事情。批处理中的正常转义字符是^,而批处理脚本(如%%)中的转义字符是%),因此您告诉脚本打印一个文本%,然后是字符串@zz,然后是另一个文本% 如果您真的想回显%4%,则需要在每侧各有三个%符号:回
set /A "@zz+=1"
set @zz
echo:"%%@zz%%"
产生:
@zz=4
"%@zz%"
set@zz
显示了正确填充的变量,但是echo
的行为就好像它不在那里一样。奇怪的是,当从命令提示符下运行时,这些命令工作得很好。实际上,批处理正在做它应该做的事情。批处理中的正常转义字符是^
,而批处理脚本(如%%
)中的转义字符是%
),因此您告诉脚本打印一个文本%
,然后是字符串@zz
,然后是另一个文本%
如果您真的想回显%4%
,则需要在每侧各有三个%
符号:回显:“%%%@zz%%%”
这告诉batch打印一个文本
%
,然后是%@zz%
的值,然后是另一个文本%
为什么在天堂里你使用%%var%%
而不是%var%
?