[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 终于弄懂了批处理中多个for嵌套的执行过程

  1. @echo off
  2. for %%i in (1;2;3;4) do (
  3. for %%j in (a;b;c;d) do (
  4. for %%k in (A;B;C;D) do (
  5. echo %%i %%j %%k
  6. )))
  7. pause
复制代码
通过此例子可以看出,最外层for中的元素在执行下一个for中元素所执行的命令时的过程!

[ 本帖最后由 yslyxqysl 于 2010-8-27 14:25 编辑 ]

嗯,的确看出来了。    挺经典的..

TOP

三个FOR,最外面的(第一排)执行一遍,中间的FOR(第二排)根据第一个FOR的变量个数执行相应的次数,最里的FOR(第三排)根据第二个FOR变量个数执行相应的次数。

计算起来,每个FOR都有四个变量,第一个FOR循环了四次,第二个FOR循环了4*4=16次,第三个FOR循环了4*4*4=64次。

第一个FOR只循环了一遍,里面的FOR重复循环了多遍,循环的次数由外一层的FOR的变量个数决定。

这个原理提示人们,可以用来判断两个或两个以上的FOR里面,它们集合中的元素是否相等。用上例解释就是,“if  "%%i"=="%%j"  echo 相等”

也可以用来组合两个FOR集合之中的元素,比如“echo  %%i %%j %%k”当然还有更多用法,好好学习吧!

TOP

还有一点经验可以得到,在选择循环嵌套的时候,里外不一样,时间消耗也是不一样的
努力学习,努力挣分

TOP

就是排列煮合人人见面

TOP

返回列表