Board logo

标题: [其他] 以下代码中for语句do之后的语句是如何引用%%i变量的 [打印本页]

作者: adrien0901    时间: 2008-11-3 21:53     标题: 以下代码中for语句do之后的语句是如何引用%%i变量的

请问以下语句中的ping bbs.bathome.net是如何引用for 循环种的%%i变量的,有点不解,谁能解释下,谢谢。
@echo off
for /l %%i in (1 1 10000000) do ping bbs.bathome.net
paus

[ 本帖最后由 adrien0901 于 2008-11-5 12:10 编辑 ]
作者: pusofalse    时间: 2008-11-5 15:55

即使do之后没有引用%%i变量,之后的命令也是要运行的,除非循环范围为空。
认真看完这篇帖子,相信会对你有很大帮助的:http://bbs.bathome.net/thread-2189-1-2.html

[ 本帖最后由 pusofalse 于 2008-11-5 16:00 编辑 ]
作者: Batcher    时间: 2008-11-5 16:35

批处理中的:
for /l %%i in (2,1,10) do (
  ...
)
相当于C语言中的:
for (i=2;i<=10;i++) {
  ...
}

在循环体中,不管你是否引用控制变量%%i,程序都会对2~10进行一次遍历,也就是说,循环体中的内容会被执行10-2+1=9次。
作者: adrien0901    时间: 2008-11-5 16:42

原帖由 pusofalse 于 2008-11-5 15:55 发表
即使do之后没有引用%%i变量,之后的命令也是要运行的,除非循环范围为空。
认真看完这篇帖子,相信会对你有很大帮助的:http://bbs.bathome.net/thread-2189-1-2.html


非常感谢

看了这段话理解了。

  3、for语句依次提取command1中的每一个元素,把它的值赋予形式变量I,带到do后的command2中参与命令的执行;并且每次只提取一个元素,然后执行一次do后的命令语句,而无论这个元素是否被带到command2中参与了command2的运行;当执行完一次do后的语句之后,再提取command1中的下一个元素,再执行一次command2,如此循环,直到command1中的所有元素都已经被提取完毕,该for语句才宣告执行结束
作者: Batcher    时间: 2008-11-5 16:45     标题: 回复 4楼 的帖子

那段解释对应于 for (xxx xxx xxx) do (...),而不是 for /l ...,稍有区别,请在以后的学习中细加揣摩,或者等那篇教程发布完整以后再去学习。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2