大家好,农企新闻小编来为大家解答以上问题。bat批处理 for循环,BAT批处理文件for循环的基本格式方法很多人还不知道,现在让我们一起来看看吧!
BAT批处理文件for循环的基本格式方法,的基本格式
对一组文件中的每个文件执行特定的命令。
对(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命令[命令参数]
检查以[drive3360]路径为根目录的目录树,指向每个目录中的FOR语句。
如果在/R后没有指定目录规范,则使用当前目录。如果集合只是一个点(。)性格,
枚举目录树。
/r您可以读取当前或指定路径中的所有文件名,注意它们是文件名,
2个注意点:
1.如果1.set中的文件名包含通配符(?或*),则列出/r参数指定的目录中的所有文件及其下所有与该集合匹配的子目录,而不包含匹配文件的目录则不会列出。
2.相反,如果集合包含不带通配符的特定文件名,则列出目录树,而不管集合中的指定文件是否存在。
示例:
@关闭回声
for /r d: %%i in (*。exe)执行echo %%i
中止
列出d盘所有以exe结尾的文件。
@关闭回声
对于(boot.ini)中的/r d: %%i,请执行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"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
带引号的字符串“options”包括一个或多个
指定不同解析选项的关键字,这些关键字为:
eol=c 指定一个注释字符的结尾(就一个)
skip=n 指在文件开始时忽略的行数
delims=xxx 指定分隔符集,这个替换了空格和跳格键的默认分隔符集
tokens=x,y,m-n 指每行的哪一个符合被传递到每个迭代的for本身,这回倒是额外名称的分配,m-n格式为一个范围
通过nth符号指定mth,如果符号字符串中的最好一个字符星号,那么额外的变量将在最好一个符号解析之后分配并接受行的保留文本,
经过测试,该参数最多只能区分31个字段
usebackq 指定新语法已在下类情况中使用:
在作为命令执行一个后引号的字符串并且一个单
引号字符为文字字符串命令并允许在 file-set
中使用双引号扩起文件名称。
例子:
@echo off
rem 首先建立临时文件,用完删除>test.txt
echo ;注释行,这个是临时文件,用完删除>text.txt
echo 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
pause
del text.txt
运行......
解释:
eol=; 分号开头的行尾注释行
tokens=1,3- 将每行第1段,第3段和剩余地段分别赋予变量%%i,%%j,%%k
delims=,- (减号后有一空格)以逗号减号和空格为分隔符,空格必须放在最后
例子:
@echo off
for /f "skip=4 delims=" %%i in ('net user') do echo %%i
pause
这样你本机全部账号名字就出来了把括号内的内容用两个单引号起来就表示那个当命令执行,for会返回命令的没行结果,加那个"delims=" 是为了让空格的行能正行显示出来,不加就默认只显示空格左边一列,应为默认的分隔符为空格或叫跳格键。
看了“BAT批处理文件for循环的基本格式方法”还想看:
1.批处理文件
2.bat命令怎么批处理
3.bat批处理命令
4.常用的文件格式集锦
5.bat批处理文件显示乱码怎么办