标题:
奇怪的 SET /a ?
[打印本页]
作者:
GOTOmsdos
时间:
2007-3-2 02:26
标题:
奇怪的 SET /a ?
下面的批处理为什么第二句的SET没有执行?
@echo off
set /a num=4
for %%a in (*.*) do (
set /a num +=1
echo %num%
)
值总是4,也显示4
可是,在退出整个程序后,用 ECHO %num%, 值却是正确的!
[
Last edited by GOTOmsdos on 2007-3-2 at 02:34 AM
]
作者:
namejm
时间:
2007-3-2 02:44
呵呵,这个牵涉到变量的延迟问题,可以参考这个帖子:
什么情况下该使用变量延迟?
作者:
NaturalJ0
时间:
2007-3-2 02:47
我想,应该是变量延迟的关系吧。
开头加上 setlocal enabledelayedexpansion
FOR 中间的变量把这种形式:%var%,换成这种形式!var!
作者:
vkill
时间:
2007-3-2 04:10
willsort 大大 讲的好
作者:
juventusryp
时间:
2007-3-2 05:33
恩,看看2楼NA斑竹说的那个帖子就好了...总之就是,因为你在FOR语句后又要用到你前面已经申明的变量,所以要用变量延迟
作者:
qingfushuan
时间:
2007-3-2 05:58
用这个学习延时变量好方便哦,比文字说明好多了,收藏了
作者:
zhoushijay
时间:
2007-3-4 10:02
我用的时候是错误的,NUM始终都是4,你的FOR语句好象有错误的吧?
作者:
zh159
时间:
2007-3-4 10:10
将 echo %num% 改为 call echo %%num%% 也可以
欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/)
Powered by Discuz! 2.5