找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: defanive

[原创] 批处理中set /a 极大的误区

[复制链接]
发表于 2011-10-12 17:59:33 | 显示全部楼层
我觉得官方解释不能说错,只是在批处理有些特别的地方罢了。开启变量延迟就可以了,说明它解释还是对的。
发表于 2016-3-17 14:41:53 | 显示全部楼层
预处理机制而已。
发表于 2016-6-17 09:38:45 | 显示全部楼层
set /a x=a,a=b,b=x
可以交换a和b的位置,你怎么看?
发表于 2016-10-20 23:33:31 | 显示全部楼层
谢谢 分享     
发表于 2017-1-27 15:07:31 | 显示全部楼层
QAQ LZ不要误导别人啊,吓得差点误解了我习惯了3年的知识
这是因为变量延迟的问题,这和所谓的%%没有关系
你只需要加一个setlocal enabledelayedexpansion,把%换成!就好了,QAQ
发表于 2018-2-18 00:31:17 | 显示全部楼层
这是延迟变量的问题,而不是什么教程乱讲。若考虑延迟变量应该写为set /a a+=1等价于set /a a=!a!+1,如果没有开启本地自动化操作则是错误的语句。所以set /a a=%a%+=1并没有错误。
发表于 2018-8-29 23:29:17 | 显示全部楼层
回复 11# applba


    大侠说到点子上了。细心点发现
发表于 2018-8-29 23:31:28 | 显示全部楼层
回复 1# defanive


    这个复合运算符隐含延迟变量的功能。就像java中复合运算符隐式一个强制类型转换
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 22:41 , Processed in 0.017889 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表