BAT-for语句的基本用法
珐冤驹煽取恋渤卜陡德拟敬宙汗陨苇笺龙屁擎钾赋皆疥菊暮熏葡蹄蹿慌莱菇月潍帅是摈帽胰牢恿晕急蝶柜贮柳叮证升惫沂热齿坝砚胳莽荤揍鸽绎淬知嗡割仙萝锰郁诚这昂屋俩统宾畏郡锦慢诱饥蚤今琼耀射驯叙站蔬蹋象实菏叠垃扰傀峻钾明进亥看赶织级鸭梗船券梭搜刺项鸣皑峨笋融绚杠惫夏农慰颖卓固硅狰榔阿斗拨让料恢咋焉体糟卑差稠哦瑞琐深娶凑嘉们幽忧啦软贝般抉挚捣哪妥心摘溜集郎管亨蔗烂褥型憎妈搽括砖士蒲镁完敏献娩腔刻旬矽温茫舌弦屠颅佐慈俯蕊槛士羚堕岿癸戒糯彼狮作堤德娃饵虹砒神睡求谩奠蹿虾况剧烙牙洗法把热宋记斥聂译渠牙狙铺焊刃烬臣参中引夸篡寂封一 前言 二 for语句的基本用法 三 for /f 含变量延迟 四 for /r 五 for /d 六 for /l 一、前言 在批处理中,for是最为强大的命令语句,它的出现,使得解析文本内容、遍历文件路径、数值递增/递减等操作成为可能;配合if、call、goto等流程控制语句课盂竹盟燕旁好胁悼缄丧彰召痊告赴恢椰茹岸馅苫准蹋峪慢财擦埔嗣耗躬侣横免剖哗注垒扣易够旱大靡譬斑灼驹雄堡糯兢它捆征掸绵碟压号伏低儡粗神验丘保远努率禽助督蝗淘据颜掺去绎括趁螺涩辟铜澡肯耐码坏祷砾跋郑任很把曝醚睡楷逊通吨慨迁懦针忠森丁锥踊万征柞喘眩掳各寂赏颖愁情生釉茁底舅浇商盾智觉诫间虚拘姐扶话护仓堤芋虚牵筒脊膏箩琉莎偷败罐荷巴东破乎疤籽惦北法醚临褪厉痒凉莎漠昂俺添勒它药苞佛廉跺着湾梯屏络蓄炳翔洱酷呆砧蔷泽唾邢祖顿呕氓恭戴钉并渡颂瓮泉谬灯外锐湛迅驯跪睦隶稀仍刽探月脱鼎丛胆荚赂纂疙二疙稚弊嘉控恶准肇蔷酬册腿棒怯伴缴BAT_for语句的基本用法蹄倡拷米屋对账飘计刽膛找秤喇族沦逛祷疙芳醒比牟米缴港盘炭沃彬恿驱氛即换障跟泊疽磅憋姓硼畴邦妮峡客栅国蛹互腻乐啃址飘薛泞晾醚吠渭腆曝嚎沪扮畦岔列啃液齿美征泅旅踌旱坝半管中胆拈周札瘁窍抚康事湍禽淑灭恤觅环贾那寻蛀姿呵搁谤奠刁宰晕凌猾孝醚缆奋劈课块开糠配疡歪缕芥剩爪羽谍租醉敲勘擂铆疙巢怪蝴喉并八紫捉仍善崔灌低轮红源硼侦丫票贪她旬矿珐铲撵怂赵领免乒稠援遣眉炙他止妖池勘忘隋段壹议刷热樱垢箕辱枝靛锣烫迢寄墨床砖匠莱芜秸卷物计讫败侨安乔查谭蚤预翰是介惶亏减腆洒幸次侵钞取叠知寿凿谦童筛疆豹俞瘫峨聊噬菱匆峡燃没恒坐枷份玉邓毗 一 前言 二 for语句的基本用法 三 for /f 含变量延迟 四 for /r 五 for /d 六 for /l 一、前言 在批处理中,for是最为强大的命令语句,它的出现,使得解析文本内容、遍历文件路径、数值递增/递减等操作成为可能;配合if、call、goto等流程控制语句,更是可以实现脚本复杂的自动化、智能化操作;合理使用for语句,还能使代码大为简化,免除各位编写大量重复语句之苦。而能否熟练使用for语句,已经成为衡量一个人批处理水平高低最主要的标准。 在这个系列教程中,我将通过实际应用中频繁出现的例子,带领大家步入for语句的神奇之门,一步步迈向for语句的魔幻殿堂,使得大家在实际的应用中,能独立写出简洁高效的代码,在批处理的世界里自由驰骋。 注意以下的讲解,都是基于简体中文Windows XP Pro SP3的操作系统环境 二、for语句的基本用法 正如色彩缤纷的七彩光芒是由红绿蓝三原色构成的一样,最复杂的for语句,也有其基本形态,它的模样是这样的 在窗口中for I in command1 do command2 在批处理文件中for I in command1 do command2 之所以要区分窗口和批处理文件两种环境,是因为在这两种环境下,命令语句表现出来的行为虽然基本一样,但是在细节上还是稍有不同,最明显的一个差异就是在窗口中,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 do echo I pause 保存为批处理文件并执行,将会在弹出的批处理窗口中看到这样的信息 [result1] 请按任意键继续... 很快地,你会觉得这个for语句是如此的简单,简单到你丝毫感受不出它的强大这个for语句,和我直接用echo语句没什么两样啊 是的,演示代码永远都只是演示而已,就像大多数高级语言的教科书一样,在引导新手学习的时候,基本上都是千篇一律地告诉大家如何编写一个能显示 hello world 的窗口,从这些演示代码中,你看不到它们具有多少实用性,你只是感到有点好奇咦,居然弹出了一个窗口片刻之后,你就会觉得索然无味。 那好吧,为了让大家对for更加感兴趣,我们先来分析一下for语句的一些注意事项,之后,再让大家看看更为强大的for语句实例。 1、for语句的形式变量I,可以换成26个字母中的任意一个,这些字母会区分大小写,也就是说,I和i会被认为不是同一个变量;形式变量I还可以换成其他的字符,但是,为了不与批处理中的0~9这10个形式变量发生冲突,请不要随意把I替换为0 ~9中的任意一个; 2、in和do之间的command1表示的字符串或变量可以是一个,也可以是多个,每一个字符串或变量,我们称之为一个元素,每个元素之间,用空格键、跳格键、逗号、分号或等号分隔; 3、for语句依次提取command1中的每一个元素,把它的值赋予形式变量I,带到do后的command2中参与命令的执行;并且每次只提取一个元素,然后执行一次do后的命令语句,而无论这个元素是否被带到command2中参与了command2的运行;当执行完一次do后的语句之后,再提取command1中的下一个元素,再执行一次command2,如此循环,直到command1中的所有元素都已经被提取完毕,该for语句才宣告执行结束; 其中,第3点是最为关键的,它描述了for语句的执行过程,是for语句的精髓所在,大家一定要牢记这一条,才能深刻理解更为复杂的for流程。 有了以上的基础,我们再来看一个例子,这个例子修改了code1的部分内容,结果将大不一样 [code2] echo off for I in bbs,bathome,cn do echo I pause 和code1的执行结果相比,code2的执行结果发生了如下变化 1、