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

标签 command-line batch-file sum

好的 这很简单。我只想在每次使用 += 运算符时将数字加 1!

所以我像这样进入提示:

C:\Users\fsilveira>SET teste=000007

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

C:\Users\fsilveira>SET /A teste+=1
8
C:\Users\fsilveira>

哇不错。似乎工作正常。

从上一个的行为来看,如果我再次使用相同的运算符,它应该只是将 1 加到 8 上,对吗?所以我想我会有9个?但这是正在发生的事情:

C:\Users\fsilveira>SET teste=000008

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

C:\Users\fsilveira>SET /A teste+=1
1
C:\Users\fsilveira>

什么? 8 + 1 是 1 ? o_O

当涉及到数字 8 时,它无法正常工作(或者我认为它应该如何工作)

我快要疯了

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

问候, 菲利普

最佳答案

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

C:\Users>SET teste=000020

C:\Users>ECHO %teste%
000020

C:\Users>SET /A teste+=1
17

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

关于command-line - 在批处理文件中使用运算符 "+="的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15626393/

相关文章:

linux - 在具有完整路径的 Linux 中使用 ls 命令列出文件

linux - 帮助使用 PDFKit 和 Rails 应用程序

sorting - 在Elasticsearch中获取每组的前n个值

php - 在 php 变量中添加 html 文本框值

java - 计算总和为偶数的数组中数字的最大数量

python - 使用 argparse 获取选定的子命令

java - 从 shell/终端调用脚本和使用 Java 进程有什么区别?

mysql - NSIS编译-无法将mysql识别为可操作程序-为什么NsExec::ExecToLog statement Fail?

windows - 使用脚本清除 Internet Explorer 6.0 浏览历史记录

Facebook 批量请求