标题: [求助]如何输出for循环里累加的数字
[打印本页]
作者: brickflying
时间: 2008-4-14 15:28
标题: [求助]如何输出for循环里累加的数字
我写的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
请高手帮帮忙
作者: abcd
时间: 2008-4-14 15:30
@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
作者: brickflying
时间: 2008-4-14 15:53
谢谢abcd,结果对了
call echo %%var%%
是什么意思啊
作者: bat-zw
时间: 2008-4-14 16:26
等同于延时,在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 ]
作者: brickflying
时间: 2008-4-16 10:47
呵呵,太感谢了
作者: zw4123
时间: 2008-4-16 10:57
开启变量延迟,但是我好像还是不太明白
作者: huahua0919
时间: 2008-4-16 14:11
不用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
作者: shengping
时间: 2009-2-12 12:17
Set /a 如何才能在纯DOS 下使用?
作者: HAT
时间: 2009-2-12 12:59
标题: Re 8楼
纯 DOS 下的set命令没有/a和/p之类的开关
作者: zhengqian529
时间: 2009-2-12 18:36
/a /p是命令扩展了才有的吧?