set /a var=2
(
set /a %var%=var * 2
set /a %var%=%var% * 2
set /a %var%*= 2
)
为什么说它错了?
我收到了类似Missing operand
和的消息Missing operator
。好吧,运营商在那里,虽然我不知道什么是操作数。
是的,我在这里搜索了答案,但没有一个能解决……至少我看到的那些。
set /a var=2
(
set /a %var%=var * 2
set /a %var%=%var% * 2
set /a %var%*= 2
)
为什么说它错了?
我收到了类似Missing operand
和的消息Missing operator
。好吧,运营商在那里,虽然我不知道什么是操作数。
是的,我在这里搜索了答案,但没有一个能解决……至少我看到的那些。
你在滥用%
语法。%
意味着expand the contents of this variable
,这不是你想要做的。您希望将计算结果存储回变量中。只需删除%
赋值运算符左侧的 。
试试这个:
set /a var=2
@echo %var%
set /a var=%var% * 2
set /a var=%var% * 2
set /a var*= 2
@echo %var%
我相信, %var% 是解释器(shell)的语法,它用该变量的值替换 %var% 。它应该在调用任何命令之前发生。Set 使用环境变量,因此它必须使用它们而不是它们的值。尝试设置 /a var = 2; 设置 /a var = var * 2。顺便说一下,在“4 + 5”中,+ 是运算符,4,5 是操作数(运算符的参数)。