Board logo

标题: [求助]如何输出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是命令扩展了才有的吧?