批处理:FOR的集与通配符上

来源:互联网 发布:数据库表的备注 编辑:程序博客网 时间:2024/05/16 06:43

http://hi.baidu.com/cjiabing/blog/item/0341adefa3903611fcfa3c7e.html

 

第二节 FOR的集合与变量

本节将FOR的“集合”和“变量”放在一起的原因是,两者之间存在着相互关系。

集合向变量提供元素替换变量,因此是供应者,它决定了变量的取值范围。用术语说,集合赋值给形式变量。

变量为集合内的元素提供赋值位置,它只能从集合限定的范围取值,因此是需求者。

集合赋值给变量,变量又向DO命令赋值,这个过程构成一个FOR的循环。集合内元素的总量决定了FOR循环的次数。

二、集合

(一)概述

FOR命令常见的三种表达方式:IN (Command1) IN (集合) IN (Set)

集合,也称集。在批处理里,它确定一个范围、总量,是一个数据库,由固定数值(元素)组成,向变量提供固定数值,用于替换变量。变量和集合的关系是需求与供给的关系。集合的个数决定了需要循环的次数。

集合必须用圆括号括起来。

集合里的内容包罗万象。可以是单个字符,也可以是字符串,可以是文件,也可以是命令。我们见得最多有:

路径+文件名:如c:/note.txt

文本:如歌曲列表.txt

字词:如我爱北京天安门

数字:如123

符号:如+-*/

命令:如’set’

盘符:如c:/

还有时间、进程、注册表、服务、内存管理、启动等等。

集合里可以是只有一个元素(数值),如:“我爱北京天安门”

也可以有多个,如:“c: d: e: f:

甚至所有、全部,如:*.*

可以确指,如“我爱北京天安门”

也可以是模糊的,如:w?s.*

(二)FOR与文件查询

由于FOR也可以用来查询文件,FOR结合通配符查询文件的功能要比DIR强得多,因此有必要结合通配符来谈谈FOR命令。

通配符(?*)常用来代替未具体指明的文件和数据。

?代表单个字符。

* 代表全部字符。

将通配符用于集合内,FOR可以展现强大的搜索能力。

1、查询当前目录(批处理命令所在的位置)的所有文件:

@echo off

for %%i in (*.*) do echo "%%i"

pause

讲解:

*.*的第一个星号表示文件名,第二个星号表示扩展名,整体表示所有类型的文件。

2、列举当前目录下所有扩展名为txt的文件:

@echo off

for %%i in (*.txt) do echo "%%i"

pause

讲解:

*.txt表示所有扩展名为txt的文件,也就是所有文档(记事本)文件了。

3、查询txtdoc两种类型的文档:

@echo off

for %%i in (*.doc *.txt) do echo "%%i"

pause

讲解:

集合里包含两个元素*.doc*.txt,两者之间六个空格。*.doc是所有WORD文档。

4、查询文件名只有两个字符的文档:

@echo off

for %%i in (??.txt) do echo %%i

pause

讲解:

??表示两个字符,也就是文件名只有两个字母或两个汉字了的文档。

5、查询文件名第二个字母为Omp3文件:

@echo off

for %%i in (?o*.mp3) do echo %%i

pause

讲解:

?o存在先后顺序,?是第一个字符,o是第二个字符,*代表剩余的字符。

原创粉丝点击