For 命令的使用
2010-02-23 15:42
204 查看
For 命令用于对一系列文件执行一个特定的命令,也有很多扩展,如下文, 功能很强大,使用有点麻烦。
它的完整语法是:
For %variable IN (set) Do command [command-parameters]
其中:
%variable 是单字母变量
set 是一个或者多个文件,可使用通配符
command 是对 set 中的每一个文件要执行的命令,可以是系统命令,脚本,第三方程序等。
注意:
如果在批处理中使用For命令,应该将 %variable 改为 %%variable
批处理文件中,变量名是区分大小写的,也就是说 %a 和 %A 是不同的
如果enable了命令扩展,可以支持以下的额外形式和额外功能。
加入/D: For /D %variable IN (set) Do command [command-parameters]
功能: set 中如果有通配符,将用来匹配目录名,而不是基本命令中的文件名。也就是说,对set中的每个目录执行特定的命令
加入/R: For /R [ [drive: ] path ] IN (set) Do command [command-parameters]
功能: 从[drive: ] path 开始,对所有目录和子目录执行特定的命令。 如果 [drive: ] path 为空,没有指定任何目录,则仅对当前目录执行 For 命令。 如果 set 是一个 “ . ” 点号,则仅枚举目录
加入 /L: FOR /L %variable IN (start,step,end) DO command [command-parameters]
功能: 这时,set是一个数列,start是起始数, step是增加量,end是终止数。 对这个数列执行特定的命令。
加入 /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]
file-set 是一个或者多个文件名,每个文件都被打开,读取,处理。读取时,每个文件都被分为单个的行(忽略空行),每行都解析为 0个或者多个 token。 For 语句然后将token的值 赋与 %variable 变量。 缺省时, /F 传递每个文件中的每行中的第一个分离的token。可以用 option 来修改这个缺省的解析行为。
Option 中的关键字是:
eol=c 指定一个行注释字符(忽略这个字符起始的行)
skip=n 指定忽略文件中最开始的n行
delims=xxx 指定分隔符,缺省时,使用空格和tab作为分隔符
Tokens=x,y,m-n
指定应该将哪些 token 的值传送给 For 命令中的 特定命令去处理
如果指定了多个token,就会自动分配多个变量
m-n 是制定范围来设置传值的token
Token= 的如果最后一个字符是星号"*",则自动分配额外的变量,来接收从最后一个token之后的行内的剩余文字。
usebackq 指定使用特别字符,这是的命令语法就是
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]
也就是 “” 双引号变成 ‘ ‘ 单引号。 ’ ‘ 单引号变成 ` ` 反引号 (就是 “ ~ ” 这个键)
样例:
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
解析 myfile.txt, 忽略分号起始的行,以逗号或者空格为分隔符,解析每行第二个和第三个token。第二个token的值赋给 %i, 第三个token的值赋给 %j ,其它token的值赋给%k (%j, %k 是隐式自动创建的)。 如果文件名中有空格,应该用双引号括起来。Token行最多指定26个token
还可以使用 For /F 来解析一个字符串: 在 set 中使用 单引号,这时,set 段就会被当做一个文件中的一行来处理。
还可以使用 For /F command 来解析命令输出: 在 set 中使用反引号,这时,set段会被当做一个命令行并传递给一个子cmd.exe,它的输出会被捕捉到内存中并被解析,就好像它是一个文件一样。
还可以有以下修饰符来增强 For 变量代换:
%~I 扩展 %I,删除包围的引号 “” ----- %I --- 大写的 i
%~fI 扩展 %I 为完全路径名
%~dI 扩展 %I 为仅驱动器字符
%~pI 扩展 %I 为仅路径名
%~nI 扩展 %I 为仅文件名
%~xI 扩展 %I 为仅文件扩展名
%~sI 扩展 %I 为包括短文件名的路径
%~aI 扩展 %I 为完全路径名
%~tI 扩展 %I 为文件的日期时间
%~zI 扩展 %I 为文件大小
%~$PATH:I 搜索PATH变量,将 %I 扩展为发现的第一个完全路径。如果PATH环境变量未定义或者文件未找到,则扩展为空字符串
修饰符可以叠加,例如
%~dpI 扩展为驱动器符和路径名
%~nxI 扩展为文件名和扩展名
%~fsI 扩展为完全路径名+短文件名
%~dp$PATH:I
%~ftzaI
Ok,先到这里,以后再举例说明
它的完整语法是:
For %variable IN (set) Do command [command-parameters]
其中:
%variable 是单字母变量
set 是一个或者多个文件,可使用通配符
command 是对 set 中的每一个文件要执行的命令,可以是系统命令,脚本,第三方程序等。
注意:
如果在批处理中使用For命令,应该将 %variable 改为 %%variable
批处理文件中,变量名是区分大小写的,也就是说 %a 和 %A 是不同的
如果enable了命令扩展,可以支持以下的额外形式和额外功能。
加入/D: For /D %variable IN (set) Do command [command-parameters]
功能: set 中如果有通配符,将用来匹配目录名,而不是基本命令中的文件名。也就是说,对set中的每个目录执行特定的命令
加入/R: For /R [ [drive: ] path ] IN (set) Do command [command-parameters]
功能: 从[drive: ] path 开始,对所有目录和子目录执行特定的命令。 如果 [drive: ] path 为空,没有指定任何目录,则仅对当前目录执行 For 命令。 如果 set 是一个 “ . ” 点号,则仅枚举目录
加入 /L: FOR /L %variable IN (start,step,end) DO command [command-parameters]
功能: 这时,set是一个数列,start是起始数, step是增加量,end是终止数。 对这个数列执行特定的命令。
加入 /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]
file-set 是一个或者多个文件名,每个文件都被打开,读取,处理。读取时,每个文件都被分为单个的行(忽略空行),每行都解析为 0个或者多个 token。 For 语句然后将token的值 赋与 %variable 变量。 缺省时, /F 传递每个文件中的每行中的第一个分离的token。可以用 option 来修改这个缺省的解析行为。
Option 中的关键字是:
eol=c 指定一个行注释字符(忽略这个字符起始的行)
skip=n 指定忽略文件中最开始的n行
delims=xxx 指定分隔符,缺省时,使用空格和tab作为分隔符
Tokens=x,y,m-n
指定应该将哪些 token 的值传送给 For 命令中的 特定命令去处理
如果指定了多个token,就会自动分配多个变量
m-n 是制定范围来设置传值的token
Token= 的如果最后一个字符是星号"*",则自动分配额外的变量,来接收从最后一个token之后的行内的剩余文字。
usebackq 指定使用特别字符,这是的命令语法就是
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]
也就是 “” 双引号变成 ‘ ‘ 单引号。 ’ ‘ 单引号变成 ` ` 反引号 (就是 “ ~ ” 这个键)
样例:
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
解析 myfile.txt, 忽略分号起始的行,以逗号或者空格为分隔符,解析每行第二个和第三个token。第二个token的值赋给 %i, 第三个token的值赋给 %j ,其它token的值赋给%k (%j, %k 是隐式自动创建的)。 如果文件名中有空格,应该用双引号括起来。Token行最多指定26个token
还可以使用 For /F 来解析一个字符串: 在 set 中使用 单引号,这时,set 段就会被当做一个文件中的一行来处理。
还可以使用 For /F command 来解析命令输出: 在 set 中使用反引号,这时,set段会被当做一个命令行并传递给一个子cmd.exe,它的输出会被捕捉到内存中并被解析,就好像它是一个文件一样。
还可以有以下修饰符来增强 For 变量代换:
%~I 扩展 %I,删除包围的引号 “” ----- %I --- 大写的 i
%~fI 扩展 %I 为完全路径名
%~dI 扩展 %I 为仅驱动器字符
%~pI 扩展 %I 为仅路径名
%~nI 扩展 %I 为仅文件名
%~xI 扩展 %I 为仅文件扩展名
%~sI 扩展 %I 为包括短文件名的路径
%~aI 扩展 %I 为完全路径名
%~tI 扩展 %I 为文件的日期时间
%~zI 扩展 %I 为文件大小
%~$PATH:I 搜索PATH变量,将 %I 扩展为发现的第一个完全路径。如果PATH环境变量未定义或者文件未找到,则扩展为空字符串
修饰符可以叠加,例如
%~dpI 扩展为驱动器符和路径名
%~nxI 扩展为文件名和扩展名
%~fsI 扩展为完全路径名+短文件名
%~dp$PATH:I
%~ftzaI
Ok,先到这里,以后再举例说明
相关文章推荐
- 批处理for命令使用指南
- 批量添加用户帐号(for do脚本命令的使用例子)
- 使用hadoop命令警告提示:Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
- 使用for命令在多台SQLServer服务器上执行脚本
- 我使用过的Linux命令之for - Bash中的For循环
- CMD文件中用FOR命令读取文本文件内容到变量,以及和PsExec搭配使用的方法和例子
- Jar(For Java)命令的使用
- 编译busybox时使用make menuconfig命令出现下列问题:recipe for target 'scripts/kconfig/lxdialog/checklist.o' failed
- 我使用过的Linux命令之for - Bash中的For循环
- dos for命令 使用
- SQL PLUS命令使用大全(转,for references only!)
- linux shell for循环使用命令中读取到的值实例
- 批处理(.bat)For命令使用
- dos中的for命令简单使用
- DOS中使用FOR命令
- 我使用过的Linux命令之for - Bash中的For循环
- 我使用过的Linux命令之 for - Bash中的For循环
- 第3章 shell结构化命令------------(for命令与使用实例)
- 第3章 shell结构化命令------------(for命令与使用实例)
- #346 – 使用命令的时候MenuItem可以不设置Header属性(No Need to Set Header Property for MenuItem When Using Commands)