中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 当学习有for嵌套的批处理时遇到的问题!
作者:
标题: 当学习有for嵌套的批处理时遇到的问题! 上一主题 | 下一主题
logictianjin
初级用户





积分 58
发帖 25
注册 2006-11-29
状态 离线
『楼 主』:  当学习有for嵌套的批处理时遇到的问题!

比如以下一段代码:
@echo off
for %%a in (c d e f g h i g k) do (
  for /f "tokens=*" %%i in ('dir /b/a-d %%a:\"My Music"\哎呀.mp3') do (
    set dddd=%%a
  )
)

我应该按什么样的顺序来读它?单拿出来的FOR语句我基本都能读懂,可是一套起来我就开始晕了!

想向高手学习一个拆解FOR 嵌套的方法!!!!

[ Last edited by logictianjin on 2007-4-10 at 09:53 AM ]

2007-4-10 21:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 2 楼』:  

一个一个代入啊

2007-4-11 00:26
查看资料  发短消息 网志   编辑帖子  回复  引用回复
logictianjin
初级用户





积分 58
发帖 25
注册 2006-11-29
状态 离线
『第 3 楼』:  



  Quote:
Originally posted by NaturalJ0 at 2007-4-10 11:26 AM:
一个一个代入啊

我明白你的意思,这个范例中只有2个套,如果很多个的话,我就会看晕,看了后面的DO就忘了前面的DO

当阅读这类批处理的时候有没有什么好的阅读方法?

2007-4-11 00:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 4 楼』:  


发个for命令的演示代码出来:
@echo off&SetLocal EnableDelayedExpansion
for /l %%a in (1 1 3) do (
for /l %%b in (1 1 3) do (
for /l %%c in (1 1 3) do (
set /a a+=1
echo 第!a!次循环的结果:         a=%%a \ b=%%b \ c=%%c
)
pause
)
)
cls&echo 结束.
pause&exit/b


2007-4-11 01:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
htysm
高级用户




积分 866
发帖 415
注册 2005-12-4
状态 离线
『第 5 楼』:  

楼主,你有福了。

2007-4-11 11:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
logictianjin
初级用户





积分 58
发帖 25
注册 2006-11-29
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by lxmxn at 2007-4-10 12:12 PM:

发个for命令的演示代码出来:
[code]
@echo off&SetLocal EnableDelayedExpansion
for /l %%a in (1 1 3) do (
for /l %%b in (1 1 3) do (
for /l %%c in (1 1 3) do  ...

这回彻底晕菜了!!!!!!
如果把这个批处理的运行过程作出详细说明的话,我觉得会对象我这样的新手对于FOR的理解有非常好的帮助!!!
希望看到您的(教程) 期待中!!!

2007-4-12 02:14
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 7 楼』:  


Re logictianjin:

如果想看到for的运行过程,可以打开命令行回显(echo on),你还可以搜索 willsort 兄关于for命令运行机制的分析说明。

一般对于循环的嵌套,都是从内向外的,也就是里面的循环完了才执行外面的循环。

但总是由外面的循环开始运行整个循环过程。

你可以搜索一下关于for嵌套的相关贴子。


2007-4-12 02:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: