首页 > 聚焦 > >正文

bat中的for循环_BAT批处理文件for循环的基本格式方法_快看

来源:互联网2023-02-09 01:34:41

一、基本格式

对一组文件中的每个文件执行特定的命令。


(资料图片仅供参考)

对(set)中的%变量执行命令[命令-参数]

%variable指定一个单字母可替换参数。

(set)指定一个或一组文件。可以使用通配符。

Command指定要对每个文件执行的命令。

命令参数

为特定命令指定参数或命令行开关。

在批处理程序中使用FOR命令时,请使用%%variable来指定变量。

而不是使用%variable。变量名区分大小写,因此%i不同于% i .

参数:for有四个参数/d /l /r /f,下面的示例解释了它们的功能。

二、参数/d

FOR/D %变量IN (set) DO命令[命令-参数]

如果集合包含通配符,则指定它匹配目录名而不是文件名。

例如:

@关闭回声

对于(c:*)中的/d %%i,执行echo %%i

中止

运行后,将打印c盘根目录下的所有目录,不打印文件。

示例:

@关闭回声

对于/d %%i in(?)做echo %%i

中止

如果当前目录中存在只有1-3个字母的目录名,则显示,否则不显示。

*表示任意N个字符,而?仅表示任意一个字符。

三。参数/r

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

检查以[drive:]path为根的目录树,指向每个目录中的FOR语句。

如果在/R后没有指定目录规范,则使用当前目录。如果集合只是一个点(。)性格,

枚举目录树。

/r您可以读取当前或指定路径中的所有文件名,注意它们是文件名,

2个注意点:

1.如果1.set中的文件名包含通配符(?或*),则列出/r参数指定的目录中的所有文件及其下所有与该集合匹配的子目录,而不包含匹配文件的目录则不会列出。

2.相反,如果集合包含不带通配符的特定文件名,则列出目录树,而不管集合中的指定文件是否存在。

示例:

@关闭回声

for /r d: %%i in (*。exe)执行echo %%i

中止

列出d盘所有以exe结尾的文件。

@关闭回声

对于/r d: %%i in (boot.ini) do echo %%i

中止

枚举磁盘d中boot.ini文件所在的目录。

四个。

FOR/L %变量IN (start,step,end) DO命令[命令-参数]

这个集合表示从开始到结束递增的一系列数字。因此,(1,1,5)将产生序列

1 3 4 5,(5,-1,1)将产生序列(5 4 3 2 1)

Start是起始值,stup是增量,end是结束值。

示例:

@关闭回声

对于(1,1,5)中的/l %%i,do echo %%i

中止

将列出值12345。

@关闭回声

对于(1,1,5)中的/l %%i,请启动cmd

中止

将打开一个5 cmd的窗口。

动词(verb的缩写)参数/F

和迭代文件解析。

使用文件解析来处理命令输出、字符串和文件内容,使用迭代变量来定义要检查的内容或字符串,并使用各种选项选项来进一步

修改解析方法,并使用options token选项来指定哪些标记应该作为迭代变量传递。

注意:当不使用令牌选项时,/f将只检查第一个令牌。

文件解析过程包括读取输出、字符串或文件内容,将其分成独立的文本行,并将每行解析成零个或多个标记。

之后,通过设置令牌的迭代变量值来调用for循环。默认情况下,/f传递每个文件每行的第一个空白分隔符,跳过空白行。

命令格式:

FOR/F[" options "]%变量IN(file-set)DO command[command-parameters]

FOR/F[" options "]%变量IN(" string ")DO command[command-parameters]

FOR/F[" options "]%变量IN(" command ")DO command[command-parameters]

引用的字符串“选项”包括一个或多个

为不同的解析选项指定关键字,这些关键字是:

Eol=c指定注释字符的结尾(只有一个)

Skip=n指的是文件开始时忽略的行数。

Delims=xxx指定分隔符集,它将替换默认的空格和tab键分隔符集。

Tokens=x,y,m-n指的是每一行中的哪一行符合传递给每次迭代的自身的。这次是额外名称的分配,m-n格式是一个范围。

Mth由第n个符号指定。如果符号串中的最佳字符是一个星号,那么在最佳符号被解析后,附加变量将被分配并接受该行的保留文本。

经过测试,该参数最多只能区分31个字段。

Usebackq指定新语法已用于以下情况:

将带反引号的字符串作为命令和单个

引号字符是文字字符串命令,允许在文件集中使用。

使用双引号来扩展文件名。

示例:

@关闭回声

Rem先建立一个临时文件,用完了就删除test.txt。

回声;注意,这是一个临时文件。用完后删除text.txt。

回声11 12 13 14 15 16 test.txt

echo 21,22,23,24,25,26 test.txt

echo 31-32-33-34-35-36 test.txt

for/F " eol=;tokens=1,3* delims=,-" % % I in(test . txt)do echo % % I % % j % % k

中止

del文本. txt

奔跑.

解释:

eol=;分号开头的行尾注释行

Tokens=1,3-将变量%%i、%%j、%%k分别赋给每行的第一段、第三段和其余部分。

Delims=,-(减号后有一个空格)用逗号减号和一个空格隔开,空格必须放在最后。

示例:

@关闭回声

for/f " skip=4 delims=" % % I in(" net user ")do echo % % I

中止

这样你所有本地账号的名字就出来了。用两个单引号将括号中的内容括起来,表示当执行命令时,for将返回不带行的命令结果。添加“delims=”使空行显示在右行。如果不添加,默认只显示空白的左栏。默认分隔符应为空白或tab键。

看完“BAT批处理文件for循环的基本格式方法”,还是想看看:

1.批处理文件

2.如何批处理2.bat命令

3.bat批处理命令

4.常用文件格式的亮点

5.5.bat批处理文件显示乱码怎么办?

本文到此结束,希望对大家有所帮助。

标签: 批处理文件 临时文件 执行命令 对大家有

下一篇: 最后一页
上一篇: 焦点!2017lolS6全球总决赛视频完整版