Board logo

标题: For 循环中Set /a 怎么起作用 [打印本页]

作者: coolfsp     时间: 2008-6-3 16:46    标题: For 循环中Set /a 怎么起作用

Set /a count=0 echo %count% set /a count+=3 echo %count% for /r e:\info\qimage %%i in (*) do ( set /a count+=1 echo %count% ) 上面的code , 其中set /a count+=1无效,为什么?

作者: thirteen     时间: 2008-6-7 20:23
我也发现了,搞得很郁闷. 也在找解决办法.

作者: lxmxn     时间: 2008-6-7 21:09
set /a count+=1 的作用是使变量 count 的值自加1,无效是因为你没有启用变量延迟功能,试试下面的代码:
Set /a count=0
echo %count%
set /a count+=3
echo %count%

rem 启动变量延迟
Setlocal EnableDelayedExpansion

for /r e:\info\qimage %%i in (*) do (
    set /a count+=1
    echo !count!
)
想知道原因的话,就自己搜索一下论坛,关键字“变量延迟”。

作者: plp626     时间: 2008-6-7 21:10
Set /a count=0 echo %count% set /a count+=3 echo %count% for /r e:\info\qimage %%i in (*) do ( set /a count+=1 call echo %%count%% )

作者: plp626     时间: 2008-6-7 21:11
『第 4 楼』: Set /a count=0 echo %count% set /a count+=3 echo %count% for /r e:\info\qimage %%i in (*) do ( set /a count+=1 call:这个方法也可以延迟 ) pause :这个方法也可以延迟 echo %count%

作者: thirteen     时间: 2008-6-7 21:35
谢谢

作者: hisplay     时间: 2008-8-17 10:56
很好。。。牛人多啊

作者: killkk     时间: 2008-10-9 22:22
飘过。。

作者: luowei14     时间: 2008-10-9 22:56
....CALL的用法还真多..学习了

作者: mimi820     时间: 2008-10-10 22:22
简单的说就是运算出变量的结果

作者: feiyuguochen     时间: 2008-12-14 15:14    标题: 与楼主最接近的修改

最简单的修改: @echo off Set count=0 for /r e:\info\qimage %%i in (*) do ( set /a count=count+1 ) echo %count% pause