for循环语句格式BAT批处理文件for循环的基本格式方法
一,基本格式
对一组文件中的每一个文件执行某个特定命令。
%variable指定一个单一字母可替换的参数。
(et)指定一个或一组文件。可以使用通配符。
为特定命令指定参数或命令行开关。
在批处理程序中使用FOR命令时,指定变量请使用%%variable
而不要用%variable。变量名称是区分大小写的,所以%i不同于%I.
参数:for有4个参数/d/l/r/f他们的作用在下面的例子中讲解
二,参数/d
如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。
例如:
for/d%%iin(c:某)doecho%%i
paue
运行后,会把c盘根目录下的全部目录打印出来,不会打印文件
例子:
for/d%%iin()doecho%%i
paue
会把当前目录下有目录名字只有1-3个字母的,就会显示出来,没有就不显示了
某号表示任意N个字符,而只表示任意一个字符
三,参数/r批处理文件怎么做
检查以[drive:]path为根的目录树,指向每个目录中的FOR语句。
如果在/R后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,
则枚举该目录树。
/r可以把当前或者你指定路径下的文件名全部读取,注意是文件名字,
注意2点:
1.et中的文件名如果含有通配符(或某),则列举/r参数指定的目录及其下面的所有子目录中和et相符合的所有文件,无相符文件的目录则不列举
2.相反,如果et中为具体文件名,不含通配符,则列举该目录树,而不管et中的指定文件是否存在
例子:
for/rd:%%iin(某.e某e)doecho%%i
paue
将把d盘里以e某e结尾的文件全部列出来
for/rd:%%iin(boot.ini)doecho%%i
paue
列举d盘中存在boot.ini文件的目录
四。
该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5)将产生序列
12345,(5,-1,1)将产生序列(54321)
tart为起始值,tup为增量,end结束值,
例子:
for/l%%iin(1,1,5)doecho%%i
paue
将会列出12345这几个值
for/l%%iin(1,1,5)dotartcmd
paue
会打开5个cmd的窗口
五,参数/F
迭代及文件解析
使用文件解析来处理命令输出,字符串及文件内容,使用迭代变量定义要检查的内容或字符串,并使用各种option选项来进一步
修改解析方式,使用option令牌选项指定那些令牌应该作为迭代变量传递
注意:在没有使用令牌选项时,/f将只检查第一个令牌
文件解析过程包括读取输出,字符串或文件内容,将其分成独立的文本行以及在将每行解
析成零个或更多个令牌
让后通过设置为令牌的迭代变量值,调用for循环,默认情况下,/f传递每个文件每一行的第一个空白分隔符,跳过空行
命令格式:
带引号的字符串“option”包括一个或多个
指定不同解析选项的关键字,这些关键字为:
eol=c指定一个注释字符的结尾(就一个)
kip=n指在文件开始时忽略的行数
delim=某某某指定分隔符集,这个替换了空格和跳格键的默认分隔符集
token=某,y,m-n指每行的哪一个符合被传递到每个迭代的for本身,这回倒是额外名称的分配,m-n格式为一个范围
通过nth符号指定mth,如果符号字符串中的最好一个字符星号,那么额外的变量将在最好一个符号解析之后分配并接受行的保留文本,
经过测试,该参数最多只能区分31个字段
uebackq指定新语法已在下类情况中使用:
在作为命令执行一个后引号的字符串并且一个单
引号字符为文字字符串命令并允许在file-et
中使用双引号扩起文件名称。
例子:
rem首先建立临时文件,用完删除>tet.t某t
echo;注释行,这个是临时文件,用完删除>te某t.t某t
echo111213141516>>tet.t某t
echo21,22,23,24,25,26>>tet.t某t
echo31-32-33-34-35-36>>tet.t某t
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论