Board logo

标题: 当学习有for嵌套的批处理时遇到的问题! [打印本页]

作者: logictianjin     时间: 2007-4-10 21:38    标题: 当学习有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 ]
作者: NaturalJ0     时间: 2007-4-11 00:26
一个一个代入啊
作者: logictianjin     时间: 2007-4-11 00:32


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

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

当阅读这类批处理的时候有没有什么好的阅读方法?
作者: lxmxn     时间: 2007-4-11 01:12

发个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

作者: htysm     时间: 2007-4-11 11:11
楼主,你有福了。
作者: logictianjin     时间: 2007-4-12 02:14


  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的理解有非常好的帮助!!!
希望看到您的(教程) 期待中!!!
作者: lxmxn     时间: 2007-4-12 02:20

Re logictianjin:

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

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

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

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