bat批处理for循环累加问题
echooffREMsetlocalENABLEDELAYEDEXPANSIONREM不起作用set/asum=0set/aii=1for/l%%iin(1,1,100)...
echo off
REM setlocal ENABLEDELAYEDEXPANSION REM 不起作用
set /a sum=0
set /a ii=1
for /l %%i in (1,1,100) do (
@echo %%i-----
set /a sum+=%ii%
set /a ii=10
rem 为什么sum和ii的值都不变呀,怎么才能加(变)呢?
@echo %sum%
@echo %ii%
) 展开
REM setlocal ENABLEDELAYEDEXPANSION REM 不起作用
set /a sum=0
set /a ii=1
for /l %%i in (1,1,100) do (
@echo %%i-----
set /a sum+=%ii%
set /a ii=10
rem 为什么sum和ii的值都不变呀,怎么才能加(变)呢?
@echo %sum%
@echo %ii%
) 展开
2个回答
展开全部
改成这样
@echo off
setlocal ENABLEDELAYEDEXPANSION
set/a sum=0
set/a ii=1
for /l %%i in (1,1,100) do (
set/a sum+=!ii!
set/a ii=10
echo !sum!
echo !ii!)
rem ii的值当然不会变,因为set/a ii=10每次循环都会把ii的值设成10
@echo off
setlocal ENABLEDELAYEDEXPANSION
set/a sum=0
set/a ii=1
for /l %%i in (1,1,100) do (
set/a sum+=!ii!
set/a ii=10
echo !sum!
echo !ii!)
rem ii的值当然不会变,因为set/a ii=10每次循环都会把ii的值设成10
追问
请问你试验了么,ii 一直是1啊,不是10……
追答
我试了,没问题呀
展开全部
@echo off
setlocal enabledelayedexpansion
set /a sum=0
set /a ii=1
for /l %%i in (1,1,100) do (
echo ---------%%i--------
set /a sum+=!ii!
set /a ii=10
echo !sum!
echo !ii!
)
pause
变量用叹号括起来。
追问
试了一下,还是不行……,等等,貌似我弄错了,一会采纳你啊,再请问下这个原理是神马啊?谢谢
追答
setlocal enabledelayedexpansion
是启用变量延迟,启用之后用“!!”表示的变量才能体现效果。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询