在批处理文件中使用运算符"+ ="的问题

Fil*_*lve 2 command-line sum batch-file

好的很简单.我只想在每次使用+=操作员时添加1到一个数字!

所以我就像这样进入提示:

C:\Users\fsilveira>SET teste=000007

C:\Users\fsilveira>ECHO %teste%
000007

C:\Users\fsilveira>SET /A teste+=1
8
C:\Users\fsilveira>
Run Code Online (Sandbox Code Playgroud)

喔,不错.似乎工作得很好.

从最后一个的行为来看,如果我再次使用相同的运算符,它应该只添加一到八个吧?所以我想我会有9个?但这是发生了什么:

C:\Users\fsilveira>SET teste=000008

C:\Users\fsilveira>ECHO %teste%
000008

C:\Users\fsilveira>SET /A teste+=1
1
C:\Users\fsilveira>
Run Code Online (Sandbox Code Playgroud)

什么?8 + 1是1?O_O

当涉及到数字8时它不起作用(或者我认为它是如何)

我在这里疯了.

请有人帮助我并向我解释发生了什么?我真的不知道!

此致,菲利佩

Ebb*_*sen 6

当前缀为0时,它将作为八进制数重复.00008不是有效的八进制数.您可以通过以下方式查看此效果:

C:\Users>SET teste=000020

C:\Users>ECHO %teste%
000020

C:\Users>SET /A teste+=1
17
Run Code Online (Sandbox Code Playgroud)

其中00020八进制是16十进制的.