中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-06 11:19
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 循环相加? 查看 711 回复 4
楼 主 循环相加? 发表于 2007-11-09 16:09 ·  中国 广西 百色 电信
中级用户
★★
积分 265
发帖 92
注册 2006-11-29 23:08
19年会员
UID 72114
性别 男
来自 广西
状态 离线
你好!
请问能不能编写一个BAT文件来计算从1+2+。。。+10 且输入一个结果如:SUM=55出来(用循环FOR)在下做一大半天却做不出来!只好请知道的朋友帮忙一下了~!感激不尽~!~!
2 发表于 2007-11-09 16:46 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线

@echo off
for /l %%i in (1,1,10) do (
call set /a m=%%m%%+%%i
)
echo %m%
pause


我试了一下,用变量延迟速度会快很多,不知道其中的原因是什么...

@echo off
setlocal enabledelayedexpansion
for /l %%i in (1,1,10000) do (
set /a m=!m!+%%i
)
echo !m!
pause


[ Last edited by jmz573515 on 2007-11-9 at 04:50 PM ]
3 发表于 2007-11-09 17:20 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
18年会员
UID 99469
性别 男
状态 离线
@echo off
for /l %%i in (1,1,10) do (
set /a m+=%%i
)
echo %m%
pause
4 发表于 2007-11-09 21:24 ·  中国 辽宁 本溪 联通
银牌会员
★★★
积分 1,212
发帖 464
注册 2006-12-13 21:11
19年会员
UID 73417
性别 男
状态 离线
我一值以为set /a m=%m%+%%i和set /a m+=%%i是一样的呢,今天才知道原来有区别,学习了。
5 发表于 2007-11-10 16:54 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
有区别么?
致精致简!
论坛跳转: