使用批处理脚本打印更大的数字

时间:2018-01-09 15:31:50

标签: batch-file cmd

当我在批处理脚本中打印这些数字时,它们会显示除这些数字以外的一些值,如何在Windows中打印这些值?

for / L %% n in(181729000010,1,181729000012)do echo %% n

4 个答案:

答案 0 :(得分:2)

这称为整数溢出。批处理只能处理最多2^31 -1 = 2147483647的数字,因为它只适用于32位整数。

你的问题的答案是:这是不可能的。

但是,如果只是打印,则没有问题:

ECHO 181729000010

工作得很好。这是因为在这种情况下,它被处理为字符串而不是数字。但是一旦你尝试使用大于2147483647的数字进行计算,你就会失败。

您的代码for /L %%n in (181729000010,1,181729000012) do echo %%n会重复从181729000010到181729000012的数字,这意味着,它会在每次迭代中为索引添加1,其中181729000010 + 1

答案 1 :(得分:1)

出于问题示例的目的,只需将命令更改为:

    total.setOnSelectionChanged(event -> {
        if (total.isSelected()) {
            System.out.println("Tab is Selected");
            //Do stuff here
        }
    });

答案 2 :(得分:1)

Select count (*) from database.table where place_id = 3 and user IS NULL;

应该非常愉快地按照你的要求行事。

如果您向我们展示您的实际问题,我们可能会建议一个解决方案。您似乎已要求我们为未知问题修复解决方案。

答案 3 :(得分:1)

我知道你已经有了解决方案。这是一个与数字一起使用的。

FOR /F %%i IN (
    'powershell.exe -NoProfile -Command ^
        "for ($i=181729000010; $i -le 181729000012; $i++) { $i }"'
) DO (ECHO %%i)

请注意,PowerShell范围运算符..仅限于[int32]大小的数字。