Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file cmd文件中的echo产生不正确的结果_Batch File - Fatal编程技术网

Batch file cmd文件中的echo产生不正确的结果

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%,则需要在每侧各有三个%符号:回

My.cmd文件包含:

set /A "@zz+=1"
set @zz
echo:"%%@zz%%"
产生:

@zz=4
"%@zz%"

set@zz
显示了正确填充的变量,但是
echo
的行为就好像它不在那里一样。奇怪的是,当从命令提示符下运行时,这些命令工作得很好。

实际上,批处理正在做它应该做的事情。批处理中的正常转义字符是
^
,而批处理脚本(如
%%
)中的转义字符是
%
),因此您告诉脚本打印一个文本
%
,然后是字符串
@zz
,然后是另一个文本
%

如果您真的想回显
%4%
,则需要在每侧各有三个
%
符号:
回显:“%%%@zz%%%”


这告诉batch打印一个文本
%
,然后是
%@zz%
的值,然后是另一个文本
%

为什么在天堂里你使用
%%var%%
而不是
%var%