[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
关于这个问题可以解释
大家都知道CMD执行命令之前要进行预处理
预处理其中有一项就是变量扩展或者叫变量替换
那么根据上文的set var=a"bs"c
%var:*"=set "var=%在经过变量扩展后就变成了
set "var=bs"c
CMD预处理之后执行这一句set "var=bs"c
而set的自己的预处理会把引号对脱掉
同时丢弃掉引号对后的字符c
所以set实际上执行了set var=bs

至于为什么丢弃掉c
是因为如果set的参数串中出现了引号对
那么它只把引号对中的字符串作为唯一参数
其它内容一概丢弃
看看set ""test=value
以及set "path"=newpath
的执行结果就明白了
天的白色影子

TOP

返回列表