在批处理文件中添加数字

时间:2014-08-10 01:44:40

标签: batch-file

我正在尝试制作一个添加数字的批处理文件。默认编号为100.启动时,脚本会向100添加1.然后它会将1添加到先前创建的编号(101)。这将一直持续到停止。除此之外,我不知道如何做到这一点。我找不到像这样的任何其他答案。我可以帮忙吗? :)

2 个答案:

答案 0 :(得分:1)

您可以使用“set / a”在批处理文件中进行数学运算 例如:

set /a sum = %sum% + 1

甚至

set /a sum += 1 

(同样的事情) 当然还有其他运营商+,其中一些需要引用。

我在http://www.robvanderwoude.com/battech_math.php找到了一个带有示例的列表:

Add:
    SET /A Result = 12 + 4
Subtract:
    SET /A Result = 23 - 7
Multiply:
    SET /A Result = 8 * 2
Integer divide:
    SET /A Result = 33 / 2
Modulo divide: (1, 2)
    SET /A "Result = 66 %% 25"
Shift right: (2)
    SET /A "Result = 128 >> 3"
Shift left:
    SET /A "Result = 1 << 4"
Bitwise AND:
    SET /A "Result = 48 & 23"
Bitwise OR:
    SET /A "Result = 16 | 16"
Bitwise XOR:
    SET /A "Result = 31 ^ 15"
Group:
    SET /A "Result = ( 24 << 1 ) & 23"

该页面列出了一些更高级的内容,还有限制:它只是整数,最大为32位。


为了让它在循环中完成,因为你想手动停止它,我只会使用一个简单的无限Goto循环。

在添加一个的set命令之前,添加一个以冒号开头的标签,如此

:start

然后你想要在循环中运行的命令(添加1,可能“回显”结果等),并在底部使用goto命令返回标签:

goto start

要停止它,按控制 - 暂停并回答Y.(它应该是control-Break,但是有些键盘会将Break从另一个键移到Pause,而新键不会停止批处理文件)

在计数达到4294967295(最大32位)之后,它可能也会自行停止,如果它只添加数字,可能不会花很长时间。 (目前我没有在我附近运行Windows的计算机来测试它)

答案 1 :(得分:1)

更简单的方法是for /l循环:

set /p max=Count to:
for /l %%a in (100, 1, %max%) do (
Echo %%a
)

这是一个从100开始计算的简单程序,但展示了批量使用for循环的简易性和有效性。