中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-16 12:17
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何输出for循环里累加的数字 查看 1,680 回复 9
楼 主 [求助]如何输出for循环里累加的数字 发表于 2008-04-14 15:28 ·  中国 甘肃 兰州 电信
新手上路
积分 16
发帖 6
注册 2008-04-14 15:07
UID 115861
性别 男
来自 中国
状态 离线
我写的bat如下,希望把每次累加后的值都输出来
@echo off
set var=0
::为变量var赋初值。
for /l %%i in (1,1,10) do (
echo %var%
set /a var+=1
)
echo var的结果是%var%。
pause
exit

可是结果却是这样的,
0
0
0
0
0
0
0
0
0
0
var的结果是10。
请按任意键继续. . .

我不太明白为什么在for里的echo输出的都是0
请高手帮帮忙
2 发表于 2008-04-14 15:30 ·  中国 北京 华为云
银牌会员
★★★
积分 1,436
发帖 739
注册 2007-10-11 17:44
UID 99469
性别 男
状态 离线
@echo off
set var=0
::为变量var赋初值。
for /l %%i in (1,1,10) do (
call echo %%var%%
set /a var+=1
)
echo var的结果是%var%。
pause
exit
3 发表于 2008-04-14 15:53 ·  中国 甘肃 兰州 电信
新手上路
积分 16
发帖 6
注册 2008-04-14 15:07
UID 115861
性别 男
来自 中国
状态 离线
谢谢abcd,结果对了
call echo %%var%%
是什么意思啊
4 发表于 2008-04-14 16:26 ·  中国 湖南 株洲 电信
金牌会员
★★★★
永远的学习者
积分 3,105
发帖 1,276
注册 2008-03-08 13:00
UID 112398
性别 男
状态 离线
等同于延时,在for语句中未开启变量延迟的情况下,直接echo前面设置的变量值%var%是不行的。比较一下下面两段代码就明白了:
set a=5&echo %a%
pause>nul

set a=5
echo %a%
pause>nul


[ Last edited by zw19750516 on 2008-4-14 at 04:31 PM ]
批处理之家新域名:www.bathome.net
5 发表于 2008-04-16 10:47 ·  中国 甘肃 兰州 电信
新手上路
积分 16
发帖 6
注册 2008-04-14 15:07
UID 115861
性别 男
来自 中国
状态 离线
呵呵,太感谢了
6 发表于 2008-04-16 10:57 ·  中国 江西 南昌 电信
初级用户
积分 34
发帖 16
注册 2006-10-14 00:05
UID 65659
性别 男
状态 离线
开启变量延迟,但是我好像还是不太明白
7 发表于 2008-04-16 14:11 ·  中国 江苏 苏州 移动
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
UID 99089
性别 男
状态 离线
不用for也行

@echo off
set sum=0
set num=1
:loop
set /a sum+=%num%&set/a num+=1&if %num% lss 10 goto :loop
echo %sum%
pause >NUL
8 发表于 2009-02-12 12:17 ·  中国 上海 浦东新区 电信
初级用户
积分 23
发帖 12
注册 2006-02-12 22:28
UID 50257
状态 离线
Set /a 如何才能在纯DOS 下使用?
9 Re 8楼 发表于 2009-02-12 12:59 ·  中国 重庆 江北区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
纯 DOS 下的set命令没有/a和/p之类的开关
10 发表于 2009-02-12 18:36 ·  美国 华盛顿州 金 雷德蒙德 Microsoft
初级用户
★★
积分 100
发帖 93
注册 2009-01-14 15:04
UID 136661
性别 男
来自 湖南
状态 离线
/a /p是命令扩展了才有的吧?
论坛跳转: