批处理文件支持的数量限制

Number limit supported by batch files

我试图使用批处理文件添加一个 12 位和一个 8 位数字。但是,它给出了以下错误 - Invalid number. Numbers are limited to 32-bits of precision.

我应该怎么做才能克服这个障碍?

如果有帮助,我是这样添加的-

set /a z= (%r:~0% + %u:~0%)

其中 ru 包含要添加的字符串格式的数字。

一个 12 位数字已经超出了 Int32 的范围,这意味着您不能直接在批处理文件中对其进行算术运算。

可以做的是按数字相加,保持进位,就像您在小学时所做的那样。它会更慢,但它有效。

另一种选择是让其他程序进行计算,例如PowerShell:

for /f %%x in ('powershell %r:~0% + %u:~0%') do set result=%%x

旁注:%r:~0% 的意思是,我认为 »取 %r% 的子串,从字符 0 开始,延伸到字符串的末尾«,这与字符串本身。