中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 05:39
48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行
DOS批处理 & 脚本技术(批处理室) » 这个问题是怎么回事呢?
可打印版本  896 / 4
第1楼 wentimao 发表于 2006-10-07 22:21
初级用户 发帖 27 积分 110
这个问题是怎么回事呢?
set num=0
echo %num%
for %%p in ('dir /b *') do (
set /a num+=1
echo %num%
)
echo %num%

现在的问题是,do里的echo显示的是0,而外面的echo可以正确显示累加的结果



──────────────── 版务记录 ────────────────
执行:namejm
原标题:这个问题是怎么回事呢
说明:因标题过于模糊,不便于论坛的搜索和管理,请在三日内修改标题。
提示:修改标题请在当前帖的右下脚点
编辑修改完毕之后按 编辑帖子 即可。
处罚:因属论坛新人,暂时不予处罚;若三日之后尚未修改标题,将扣除4点积分,
以示惩罚,并由版主强制修改标题。请点击
这里阅读论坛发帖规定,以避免在
今后的讨论中违规发帖。
──────────────── 版务记录 ────────────────


[ Last edited by namejm on 2006-10-8 at 00:15 ]
第2楼 NaturalJ0 发表于 2006-10-07 22:51
银牌会员 发帖 533 积分 1,181
开头加上这句
setlocal enabledelayedexpansion

然后 DO 里面的 用%%包起来的变量,换成用!!包起来的变量。
第3楼 wentimao 发表于 2006-10-07 23:06
初级用户 发帖 27 积分 110
恩,问题解决,谢谢
第4楼 KIKOOOO 发表于 2006-10-08 05:09
初级用户 发帖 12 积分 34
上面的脚本是显示当前目录的文件个数吗?好像有点问题啊
第5楼 pengfei 发表于 2006-10-08 05:27
银牌会员 发帖 485 积分 1,218 来自 湖南.娄底
代码的确有问题:
1. 在for语句中使用命令结果的输出作为循环变量, 这里必须使用/f参数.
2. 这段代码为查找文件及文件夹. 如果查找文件请用"dir /a-d", 若搜索文件夹请用"dir /ad"

[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023