BAT批处理文件for循环的基本格式

一,基本格式

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

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

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

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

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

command-parameters

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

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

而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.

参数:for有4个参数 /d /l /r /f 他们的作用在下面的例子中讲解

二,参数/d

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

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

例如:

@echo off

for /d %%i in (c:/*) do echo %%i

pause

运行后, 会把c盘根目录下的全部目录打印出来, 不会打印文件

例子:

@echo off

for /d %%i in (???) do echo %%i

pause

会把当前目录下有目录名字只有1-3个字母的,就会显示出来,没有就不显示了

* 号表示任意N个字符,而?只表示任意一个字符

三,参数/r

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

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

如果在 /R 后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,

则枚举该目录树。

/r 可以把当前或者你指定路径下的文件名全部读取,注意是文件名字,

注意2点:

1.set中的文件名如果含有通配符(?或*),则列举/r参数指定的目录及其下面的所有子目录中和set相符合的所有文件,无相符文件的目录则不列举

2.相反,如果set中为具体文件名,不含通配符,则列举该目录树,而不管set中的指定文件是否存在

例子:

@echo off

for /r d:/ %%i in (*.exe) do echo %%i

pause

将把d盘里以exe结尾的文件全部列出来

@echo off

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

pause

列举d盘中存在boot.ini文件的目录

四。

FOR /L %variable IN (start,step,end) DO command [command-parameters]

该集表示以增量形式从开始到结束的一个数字序列。因此,(1,1,5)将产生序列

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

start 为起始值,stup为增量,end结束值,

例子:

@echo off

for /l %%i in (1,1,5) do echo %%i

pause

将会列出12345 这几个值

@echo off

for /l %%i in (1,1,5) do start cmd

pause

会打开5个cmd的窗口

五,参数/F

/迭代及文件解析

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

修改解析方式,使用options令牌选项指定那些令牌应该作为迭代变量传递

注意:在没有使用令牌选项时,/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=" 是为了让空格的行能正行显示出来,不加就默认只显示空格左边一列,应为默认的分隔符为空格或叫跳格键

(0)

相关推荐

  • txt文档和bat批处理文件妙用

    你是否有曾经想象过自己成为一名IT精英,畅游代码的海洋,每天解读着别人所不能理解的世界,从代码中参悟真理看透一切真相,这会是一种什么滋味呢?也许你会说,我没学过代码,也当不成程序员,如何感受的到?其实 ...

  • Windows7系统运行bat批处理文件出现闪退如何解决

    bat批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,双击该批处理文件,系统就会调用cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们,这对我们操作很有用处,可是有[color ...

  • Win7系统执行bat批处理文件显示乱码该如何解决?

    Win7系统执行bat批处理文件显示乱码该如何解决? 其实原因很简单,是由于bat中的文字使用了UTF-8到导致. 解决方法: 1.右键点击Bat批处理,选择编辑,然后打开,重新另存为 编码选择ANS ...

  • Win7执行bat批处理文件显示乱码该如何解决

    Win7系统执行bat批处理文件显示乱码的解决方法 其实原因很简单,是由于bat中的文字使用了UTF-8到导致.windows7教程 解决方法: 1.右键点击Bat批处理,选择编辑,然后打开,重新另存 ...

  • 使用bat批处理文件实现Window10系统定时关机和取消关机的方法

    在Windows10操作系统中,除了常规的关机方法外,我们还可以根据自己的需要定制快速关机.延时关机以及取消关机的功能.最快速的定制方法为,使用bat批处理文件来实现.如果你也想了解的话,可以跟着本文 ...

  • 怎么新建电脑重启bat批处理文件

    电脑是现在最常用的工具之一,有些用户想知道怎么新建电脑重启bat批处理文件,接下来小编就给大家介绍一下具体的操作步骤.准备工作1. 首先第一步先点击左下角[开始]图标,接着在弹出的菜单栏中,根据下图所 ...

  • 如何将Bat批处理文件转换为Exe可执行文件

    接触过DOS命令的网友可能都知道,DOS命令的用法比较简单,但是功能非常强大,而且很灵活! 因此,计算机的很多操作.很多涉及到批量处理的工作,众多电脑用户往往首选DOS命令来完成这种工作! 正所谓&q ...

  • 利用.bat批处理文件定时关机

    有时候你要休息,但是电脑在下载电影,虽然有下完自动关机功能,但如果网速不好,一个下午都没下完,电脑就不会关机,白白浪费了时间(对于按时间上网的用户来说,真是肉疼,或许换个时间段下载该电影,很快就下完了 ...

  • bat批处理文件运行不了怎么办

    爱玩电脑,经常对电脑进行各种设置,主要是想把电脑优化成最佳状态,但是,每次设置后,都会要重启一次电脑,很麻烦,对电脑也不好.于是自制了一个"重启资源管理器.bat"批处理文件,这样 ...