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