作者:coolfsp | 时间:2008-06-03 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-06-07 20:23
我也发现了,搞得很郁闷.
也在找解决办法.
作者:lxmxn | 时间:2008-06-07 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-06-07 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-06-07 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-06-07 21:35
谢谢
作者:hisplay | 时间:2008-08-17 10:56
很好。。。牛人多啊
作者:killkk | 时间:2008-10-09 22:22
飘过。。
作者:luowei14 | 时间:2008-10-09 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