|
GOTOmsdos
铂金会员
       C++启程者
积分 5154
发帖 1827
注册 2003-7-18
状态 离线
|
『楼 主』:
奇怪的 SET /a ?
使用 LLM 解释/回答一下
下面的批处理为什么第二句的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 ]
|
|
2007-3-2 02:26 |
|
|
namejm
荣誉版主
       batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
|
2007-3-2 02:44 |
|
|
NaturalJ0
银牌会员
    
积分 1181
发帖 533
注册 2006-8-14
状态 离线
|
『第 3 楼』:
使用 LLM 解释/回答一下
我想,应该是变量延迟的关系吧。
开头加上 setlocal enabledelayedexpansion
FOR 中间的变量把这种形式:%var%,换成这种形式!var!
|
|
2007-3-2 02:47 |
|
|
vkill
金牌会员
     
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
|
2007-3-2 04:10 |
|
|
juventusryp
初级用户
 
积分 88
发帖 40
注册 2006-12-26
状态 离线
|
『第 5 楼』:
使用 LLM 解释/回答一下
恩,看看2楼NA斑竹说的那个帖子就好了...总之就是,因为你在FOR语句后又要用到你前面已经申明的变量,所以要用变量延迟
|
|
2007-3-2 05:33 |
|
|
qingfushuan
高级用户
   
积分 502
发帖 327
注册 2006-12-30
状态 离线
|
|
2007-3-2 05:58 |
|
|
zhoushijay
高级用户
    Autowalk
积分 845
发帖 375
注册 2007-3-3
状态 离线
|
|
2007-3-4 10:02 |
|
|
zh159
金牌会员
     
积分 3687
发帖 1467
注册 2005-8-8
状态 离线
|
|
2007-3-4 10:10 |
|