楼 主
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学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正