下载此文档

for详解.doc


文档分类:资格/认证考试 | 页数:约42页 举报非法文档有奖
1/42
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/42 下载此文档
文档列表 文档介绍
for 详解一前言二 for 语句的基本用法三 for /f (含变量延迟) 四 for /r 五 for /d 六 for /l 一、前言在批处理中, for 是最为强大的命令语句, 它的出现, 使得解析文本内容、遍历文件路径、数值递增/ 递减等操作成为可能; 配合 if、 call 、 goto 等流程控制语句,更是可以实现脚本复杂的自动化、智能化操作; 合理使用 for 语句, 还能使代码大为简化, 免除各位编写大量重复语句之苦。而能否熟练使用 for 语句, 已经成为衡量一个人批处理水平高低最主要的标准。在这个系列教程中, 我将通过实际应用中频繁出现的例子, 带领大家步入 for 语句的神奇之门,一步步迈向 for 语句的魔幻殿堂,使得大家在实际的应用中, 能独立写出简洁高效的代码, 在批处理的世界里自由驰骋。注意:以下的讲解,都是基于简体中文版 Windows XP Pro SP3 的操作系统环境。正如色彩缤纷的七彩光芒是由红绿蓝三原色构成的一样, 最复杂的 for 语句,也有其基本形态,它的模样是这样的: 在 cmd 窗口中: for %I in (command1) mand2 复制代码在批处理文件中: for %%I in (command1) mand2 复制代码之所以要区分 cmd 窗口和批处理文件两种环境, 是因为在这两种环境下, 命令语句表现出来的行为虽然基本一样, 但是在细节上还是稍有不同, 最明显的一个差异就是:在 cmd 窗口中, for 之后的形式变量 I 必须使用单百分号引用,即%I ;而在批处理文件中, 引用形式变量 I 必须使用双百分号,即%%I 。为了方便起见,若不是特别强调,以下的讲解都以批处理文件环境为例。我们先来看一下 for 语句的基本要素都有些什么: 1、 for 、 in和 do是 for 语句的关键字,它们三个缺一不可; 2、%%I 是 for 语句中对形式变量的引用, 就算它在 do 后的语句中没有参与语句的执行,也是必须出现的; 3、 in 之后, do 之前的括号不能省略; 4、 command1 表示字符串或变量, command2 表示字符串、变量或命令语句; 现在,你可能已经会写一个简单的 for 语句了,比如: [code1]***@echo off for %%I in (bbs.) do echo %%I pause 复制代码保存为批处理文件并执行, 将会在弹出的批处理窗口中看到这样的信息: bbs. 请按任意键继续... 很快地, 你会觉得这个 for 语句是如此的简单, 简单到你丝毫感受不出它的强大:这个 for 语句,和我直接用 echo 语句没什么两样啊! 是的, 演示代码永远都只是演示而已, 就像大多数高级语言的教科书一样, 在引导新手学****的时候, 基本上都是千篇一律地告诉大家如何编写一个能显示 hello world! 的窗口,从这些演示代码中,你看不到它们具有多少实用性, 你只是感到有点好奇:咦, 居然弹出了一个窗口?片刻之后,你就会觉得索然无味。那好吧, 为了让大家对 for 更加感兴趣, 我们先来分析一下 for 语句的一些注意事项, 之后, 再让大家看看更为强大的 for 语句实例。 1、 for 语句的形式变量 I ,可以换成 26 个字母中的任意一个, 这些字母会区分大小写,也就是说, %%I 和%%i 会被认为不是同一个变量; 形式变量 I 还可以换成其他的字符, 但是, 为了不与批处理中的%0~%9这10 个形式变量发生冲突, 请不要随意把%%I 替换为%%0 ~ %%9 中的任意一个; 2、 in和 do mand1 表示的字符串或变量可以是一个, 也可以是多个, 每一个字符串或变量, 我们称之为一个元素, 每个元素之间,用空格键、跳格键、逗号、分号或等号分隔; 3、 for mand1 中的每一个元素, 把它的值赋予形式变量 I, 带到 do mand2 中参与命令的执行;并且每次只提取一个元素,然后执行一次 do 后的命令语句,而无论这个元素是 mand2 mand2 的运行;当执行完一次 do后的语句之后,mand1 中的下一个元素,再执行一 mand2 ,如此循环,mand1 中的所有元素都已经被提取完毕,该 for 语句才宣告执行结束; 其中,第3 点是最为关键的, 它描述了 for 语句的执行过程,是 for 语句的精髓所在, 大家一定要牢记这一条, 才能深刻理解更为复杂的 for 流程。有了以上的基础, 我们再来看一个例子, 这个例子修改了[code1] 的部分内容,结果将大不一样: [code2]***@echo off for %%I in (bbs,) do echo %%I pause 复制代码和[code1] 的执

for详解 来自淘豆网www.taodocs.com转载请标明出处.