中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-10 21:06
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » For 循环中Set /a 怎么起作用 查看 1,857 回复 10
楼 主 For 循环中Set /a 怎么起作用 发表于 2008-06-03 16:46 ·  中国 上海 联通
新手上路
积分 17
发帖 8
注册 2008-05-30 17:24
18年会员
UID 120119
性别 男
状态 离线
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无效,为什么?
2 发表于 2008-06-07 20:23 ·  中国 吉林 吉林市 电信
初级用户
夜语者
积分 58
发帖 29
注册 2007-04-22 11:37
19年会员
UID 86081
性别 男
来自 地狱十九重
状态 离线
我也发现了,搞得很郁闷.
也在找解决办法.
冰我喜欢你


无论如何,坚守最后的良知!
thirteen.pdx.cn
3 发表于 2008-06-07 21:09 ·  中国 湖北 武汉 联通
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
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!
)

想知道原因的话,就自己搜索一下论坛,关键字“变量延迟”。
4 发表于 2008-06-07 21:10 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
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%%
)
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
5 发表于 2008-06-07 21:11 ·  中国 陕西 西安 电信
银牌会员
★★★★
钻石会员
积分 2,278
发帖 1,020
注册 2007-11-19 13:34
18年会员
UID 103127
性别 男
状态 离线
『第 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%
山外有山,人外有人;低调做人,努力做事。

进入网盘(各种工具)~~ 空间~~cmd学习
6 发表于 2008-06-07 21:35 ·  中国 吉林 吉林市 电信
初级用户
夜语者
积分 58
发帖 29
注册 2007-04-22 11:37
19年会员
UID 86081
性别 男
来自 地狱十九重
状态 离线
谢谢
冰我喜欢你


无论如何,坚守最后的良知!
thirteen.pdx.cn
7 发表于 2008-08-17 10:56 ·  中国 广西 玉林 电信
初级用户
★★
积分 108
发帖 56
注册 2008-08-11 14:42
17年会员
UID 123179
性别 男
状态 离线
很好。。。牛人多啊
8 发表于 2008-10-09 22:22 ·  中国 广东 东莞 电信
初级用户
积分 61
发帖 39
注册 2007-03-22 16:49
19年会员
UID 82575
性别 男
来自 come from hb--wh
状态 离线
飘过。。
9 发表于 2008-10-09 22:56 ·  中国 江西 南昌 电信
初级用户
★★
积分 193
发帖 98
注册 2007-01-17 11:56
19年会员
UID 76803
性别 男
状态 离线
....CALL的用法还真多..学习了
这家伙很聪明 什么都没留下
10 发表于 2008-10-10 22:22 ·  中国 安徽 滁州 电信
初级用户
积分 35
发帖 20
注册 2008-10-02 11:10
17年会员
UID 127220
性别 男
状态 离线
简单的说就是运算出变量的结果
11 与楼主最接近的修改 发表于 2008-12-14 15:14
初级用户
积分 34
发帖 36
注册 2008-12-11 17:21
17年会员
UID 133562
性别 男
状态 离线
最简单的修改:
@echo off
Set count=0
for /r e:\info\qimage %%i in (*) do (
set /a count=count+1
)
echo %count%
pause
爱死DOS亦无悔!
论坛跳转: