关键词不能为空

当前您在: 主页 > 英语 >

批处理for命令的用法

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-28 20:52
tags:

-

2021年2月28日发(作者:侍)


对所有的批处理初学者来说,


for


的应用是最 难理解以及掌握的。本文由浅入深,为大家专


门讲解


for


的用法,希望大家喜欢。



首先应该明确的 是


,for


不是一个简单的命令,它的用法比较复杂

< p>
,


它还可以带四个参数


(/L


/D


/R


/F),


其中


:/L



/F

< p>
参数是最经常用到的。当然,它本身也可以不带参数,下面我们通过具


体的 例子来讲解


for


的运用。



一、不带参数的


for





@echo


off


for


%%i


in


(1


2


3


4


5)


do


echo


%%i


pause


将以上代码保存为批处理文件


(


如何保存< /p>


?)


,然后运行,可以发现屏幕上显示


1 2 3 4 5(


每字


一行


)


是不是明白了一些?它的整个运行机制我们可以这样看:


for


不停的从括号中拿出


5



东西




(以空格做间隔)



并将这


5




东西



依次传给临时变量


%%i


同时把这个变量


echo


出来


.. ..


从这个例子我们可以看出,


for


的基本用法是:



for


变量



in (


目标


) do


干什么


?


变量常用


%%i


来表示,当然也可以 换成


%%j


;目标就是待处理的对象集合,比如这里的


1 2


3 4 5


;这里的干什么的内容为:批处理命令。


< br>【相关习题:


】将你的名字用


for

命令分三行显示出来!





二、带参数



/L



for (


这里的



参数


/L


可以理解为




的意思,代表一个数列


)


先看测试代码:



复制内容到剪贴板



代码


:



@echo


off


for


/l


%%i


in


(1


1


5)


do


echo


%%i


pause


显示结果也为:


1 2 3 4 5(


每字一行


)


它的意思和上面的意思差不多,但是括号中的对象却不需要



写成



1 2 3 4 5


的形式了,而


是:


1 1 5


,因为它启用了参数



/L


,就是告诉


for


,这个括号里的对象是个数 列,怎样的数


列?就是以



1


开始,步长




1


,结束值为

5


的一个等差数列,再举个实例:



复制内容到


剪贴板



代码


:


::


显示





10 - 20


的所有偶数:




@echo


off


for


/l


%%i


in


(10


2


20)


do


echo


%%i


pause


【相关习题:


】显示



1~20


间能被


5




除的整数



三、带参数



/f

< br>的


for


(这里的参数


/F


可以理解为



file


的意思,代码处理对象为文本串)



参考教程:


for


命令



/f


参数



通俗讲解



四、


for




/D



/R


参数(这两个参数个人比较少用)



1>/D


参数(常用来查询



当前目录



或者



指定目录的文件夹


)


基本用法:


FOR /D %variable IN (set) DO command [command-parameters]


如 :查询


F


盘根目录下的文件夹



复制内容到剪贴板



代码


:



@echo


off


for


/d


%%i


in


(f:*)


do


echo


%%i


pause>nul


如果省略



括号中的




,则会直接查询



批处理



所在目录的文件夹



假设



本批处理文件



保存在:


F:test




运行以下批处理代码,将会查询



F< /p>



test


下的文件夹

< br>


复制内容到剪贴板



代码


:


@echo


off


for


/d


%%i


in


(*)


do


echo


%%i


pause>nul2>



/r


参数



基本用法:


FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]


检查以



[drive:]path


为根的目录树中,所有符合(


set


) 的文件或者文件夹。如果在



/R



没有指定目录,则使用当前



目录。如果集仅为一个单点


(.)


字符,则枚 举该目录树。



用法示例:



枚举


F


:盘下所有的



文件



复制内容到剪贴板



代码


:



@echo


off


for


/r


f:


%%i


in


(*)


do


echo


%%i


pause>nul


枚举


F


:盘下所有的


.bat


文件

< br>(


包括子目录)


,则:



复制内容到剪贴板



代码


:



@echo


off


for


/r


f:


%%i


in


(*.bat)


do


echo


%%i


pause>nul


如果省略以上代码中的

< br>F:


,则会列举当前目录



所有 符合(


set


)的文件



如:列举批处理所在目录的



所有



批处理文件(包括子目录)



复制内容到剪贴板



代码


:



@echo


off


for


/r


%%i


in


(*.bat)


do


echo


%%i


pause>nul



for


命令



/f


参数



通俗讲解



for /f

< p>
参数最为复杂


,


难懂和常用


.


在刚学时确实费了我不少脑筋


,


下面就我个人的理解


,


给新手们通俗的讲讲

,


也好让新手少走


些弯路


.


格式


:


::


例一


:


复制内容到剪贴板



代码


:



for


/f



=1


tokens


=1,2*


delims


=



%%a


in


(a.t


xt)


do


echo


%%a


%%b



%%c


pause


先从引号内的东西讲起


,


很多新手对这些难以理解


,


因为



for /?


翻译的简直是一塌糊涂


.


skip=


tokens=


delims=


这 三项是用的最多的


,


根据需要


.


可以不用


,


可以一起使用

,


也可以只使用一个或两个


.


但 是不管使用几个都要用引号将它们扩起来


.


当然不使用时


,


自然就不需要引号了


.


skip=


for


循环文本内容是以 行为单位


,


从上至下进行的


,skip =1


意识就是跳过文本的第一行


,


即不 循


环第一行



那么


skip=2


自然就是跳过前两 行了


,


依次类推


.........


delims=


先讲这句



delims=


后面的字符的意识是


,


将文本每一行的内容以


delims=


后面的字 符分割成若干列


.


假设



某一行的内容是



111,222.333 444/555


我们用下面的语句



::


例二


:


复制内容到剪贴板



代码


:



for


/f



5


delims


=,./



%%a


in


(a.t


xt)


do


echo


%%a


%%b


%%c



%%d


%%e


pause


显示结果是



111 222 333 444 555


解释


:


意识就是把


111,222.333 444/555



,./


和空格


(


不分先后


)


分成了


5



.


注意代码中

/




后面有个

空格


,


使用中要注意空格要放到最后

,




这样就不行了


.


那如果我们不使用逗号来分割会如何呢


?



:




那么就会分割成


111,222


333


444


555


看出区别了吗


?delims=


后面可以是多个字符


,


可以是空格


,


也可以什么都没有

< p>
.


什么都没有代表什么呢


?

就是不以任何东西为分割符


,


也是整行的内容了

< p>
.


因为


for


默认是以


,;


和空格作分割符的


,

< p>
所以一般要取得整行内容通常会用



这样的形式来取 消


for


的默认分割符


.

-


-


-


-


-


-


-


-



本文更新与2021-02-28 20:52,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/683798.html

批处理for命令的用法的相关文章