- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
for语句可以在命令行提示符中使用,也可以在批处理文件中使用。这两种情况下唯一的区别是%和%%,参加下文说明。
一、for语句的格式:
for [参数] 变量 in (集合) do 命令 [命令的参数]
二、for语句的作用:对集合内的元素逐一执行后面的命令。
1、如:for %%i in (你好) do echo %%i
将在屏幕上显示“你好”2个字。这里集合是“你好”,执行的命令是“echo”。由于集合中只有1个元素,因此循环只运行一次。
如果改成 for %%i in (你好 朋友) do echo %%i
将会显示2行文字,第一行为“你好”,第二行为“朋友”。因为2个词之间有空格,因此集合中就有了2个元素,循环将运行2次。
2、注意:以上for语句的运行方式是新建一个批处理文件,即扩展名为“.bat”的文件,内容为上面的命令,然后运行。为了批处理执行完不退出,可在最后加上一条pausenull命令,这样能看到执行的结果。
要想通过cmd命令行执行的话,必须将%%换成%,即去掉一个%,如下:
for %i in (你好) do echo %i
3、以下所有例子都是这样,若要在命令行提示符下执行,请将所有的%%改成一个%。
三、for语句详细说明:
上面语句格式中有的加了中括号[],表示这个语句元素不是必须的,只在需要时使用。像刚才显示“你好”的命令中就没有使用[参数]这个语句元素。所有语句元素间用空格隔开。
各语句元素的写法:for、in、do这3个符号是固定不变的
1、[参数]的种类:只有4种,分别是/d、/r、/l、/f(即目录Directory、递归recursion、序列list、文件file),他们用于对后面的集合的含义做出解释,请与下面的集合解释结合来看。这4个参数不区分大小写,可以联合使用,即一条for语句可以出现多个参数。
2、变量:除10个数字外(0-9)的所有符号(因为0-9往往作为形参使用,为了与此区别),变量名一般用单个字母表示即可,而且变量名区分大小写,即A和a是两个不同的变量。变量名前面必须是%,当在命令提示符下执行时,只用一个%;而在批处理程序中,必须用%%。
一行语句中,一般只需定义一个变量。使用/f参数中的tokens选项可以将集合中的元素分解成多个值,并自动定义新的变量对应这些值。这时语句中可以使用多个变量,通常按字母顺序命名,即第一个是%%a,那么后一个就用%%b。如果第一个是%%i,后一个就用%%j。依此类推。具体看后面的相关内容。
变量可以直接在do后面的命令中使用。每次使用的变量总数不超过52个。
3、集合:集合必须放在括号里。集合是一行文本,这行文本可能有几种类型,如“你好”只是一串字符;“c:\boot.ini”是一个文件;“dir /b”是一个命令。
(1)如果for语句中没有使用任何参数,对待集合文本的处理方式是:
第一步:如果集合文本用一对百分号(%)括起来,则系统在执行for循环时首先查找前面定义的变量中是否有与百分号内文本相同的,有则以该变量值替换掉集合文本,否则集合文本不变,进入第三步。
举例:设当前目录为D盘根目录,且根目录存在文件hello.txt、study.txt。
set stuname=hello.txt
for %%i in (stuname) do echo %%i ;将显示stuname。
for %%i in (%ttuname%) do echo %%i ;将显示%ttuname%,因为没有这个变量。
for %%i in (%stuname%) do echo %%i ;将显示hello.txt,哪怕这个文件不存在,也仍然显示这个名字。
for %%i in (%stuname%) do echo %%~ti ;将显示hello.txt文件的最后修改日期。如果文件不存在,则不显示任何东西。这个命令只是验证这里是把hello.txt优先作为一个文件来处理的。
第二步:如果集合文本用一对半角双引号(以下在谈及标点符号时均为英文半角,不再说明)括起来了,则先去掉双引号,再看是否被百分号括着。如果引号内的文本用百分号括起来了,则查找是否存在相应的变量名。存在的话,用变量值替换掉变量,再用双引号括起来作为集合文本,否则集合文本不变,进入第三步。
举例:继续上面的例子
for %%i in (%stuname%) do echo %%~ti ;和不加双引号效果相同。
for %%i in (stuname) do echo %%i ;直接显示stuname。
for %%i in (stuname teachname) do echo %%i ;直接显示stuname teachname。这里是把引号内内
文档评论(0)