[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 11# GNGW


有趣的是,当set “s=(1+2)&echo %s%”时,当(1+2)中间没有空格时并不会改变当前环境变量s的值,也就是说,只有set “s=(1 + 2)&echo %s%” +号两边有空格时,才会将整个(1 + 2)作为字符串赋值给环境变量s.这个问题的解释就是不加空格解释器会认为后面的是个算数运算式,但没有/a选项,所以解释器认为这是个错误的算式,所以忽略不复制给左边变量

请注意你在上面得出了一个完全错误的结论。

除非有一个天你真正明白了大部分的“预处理”机制,否则不建议在任何时候使用&操作。
否则它的结果容易让你产生错误的猜测。
踏踏实实的,一行一行写代码,才能走的更加长远。别跟他们学乱用&的臭毛病。
C:\Test>set "s=(1+2)"

C:\Test>echo %s%
(1+2)

C:\Test>set "s=(1 + 2)"

C:\Test>echo %s%
(1 + 2)
1

评分人数

    • GNGW: 感谢您的忠告和纠正,我也是这样认为,积硅 ...技术 + 1
测试代码之前请做好备份

TOP

返回列表