1
set /a var=2
(
    set /a %var%=var * 2
    set /a %var%=%var% * 2
    set /a %var%*= 2
)

为什么说它错了?

我收到了类似Missing operand和的消息Missing operator。好吧,运营商在那里,虽然我不知道什么是操作数。

是的,我在这里搜索了答案,但没有一个能解决……至少我看到的那些。

4

3 回答 3

2

你在滥用%语法。%意味着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%
于 2013-05-10T20:16:50.557 回答
1

就这样:)

set /a var=2
set /a var*=2

.. %var% 的值为4.

操作数

于 2013-05-10T20:41:19.063 回答
0

我相信, %var% 是解释器(shell)的语法,它用该变量的值替换 %var% 。它应该在调用任何命令之前发生。Set 使用环境变量,因此它必须使用它们而不是它们的值。尝试设置 /a var = 2; 设置 /a var = var * 2。顺便说一下,在“4 + 5”中,+ 是运算符,4,5 是操作数(运算符的参数)。

于 2013-05-10T20:08:34.163 回答