作者:brickflying | 时间:2008-04-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-04-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-04-14 15:53
谢谢abcd,结果对了
call echo %%var%%
是什么意思啊
作者:bat-zw | 时间:2008-04-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-04-16 10:47
呵呵,太感谢了
作者:zw4123 | 时间:2008-04-16 10:57
开启变量延迟,但是我好像还是不太明白
作者:huahua0919 | 时间:2008-04-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-02-12 12:17
Set /a 如何才能在纯DOS 下使用?
作者:HAT | 时间:2009-02-12 12:59 | 标题:Re 8楼
纯 DOS 下的set命令没有/a和/p之类的开关
作者:zhengqian529 | 时间:2009-02-12 18:36
/a /p是命令扩展了才有的吧?