原文请参考:最简单也是最实用的-批处理(三)
接着学习批处理中的各种命令,自己一直都觉的,学习这些命令也许只需要一天或者两天的时间,但是,在实际使用时,给自己工作带来的效率可以是提高了几倍、几十倍,甚至上百倍。
1.for简介
for命令,真的是有点复杂,主要用于对一组文件中的每一个文件执行某个特定命令;
FOR %variable IN (set) DO command [command-parameters]
%variable 指定一个单一字母可替换的参数。
(set) 指定一个或一组文件。可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters
为特定命令指定参数或命令行开关。
在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable 而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.批处理文件的变量必须用两个%%开头,是为了让批处理解释程序很容易区分批处理脚本或函数的参数和for命令变量。
如果启用命令扩展,则会支持下列 FOR 命令的其他格式:
FOR /D %variable IN (set) DO command [command-parameters]
如果集中包含通配符,则指定与目录名匹配,而不与文件名匹配。
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
检查以 [drive:]path 为根的目录树,指向每个目录中的 FOR 语句。如果在 /R 后没有指定目录规范,则使用当前目录。如果集仅为一个单点(.)字符,则枚举该目录树。
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)
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]
对命令进行操作
复杂用法可以参考帮助文档;
Example:
1. for %i in (a,"b c",d) do echo %i
输出结果是分别执行echo a, echo "b c", echo d的结果。
2.tokens表示指每行的哪一个符号被传递到每个迭代的 for 本身。这会导致额外变量名称
的分配。
for /f "tokens=1-3 delims=," %a in ("1,2,10") do echo a=%a b=%b c=%c
输出结果:a=1 b=2 c=10
2.set简介
显示、设置或删除变量。
显示变量:set 或 set s 前者显示批处理当前已定义的所有变量及其值,后者显示所有以s开头的变量及值。
设置变量:set aa=abcd 此句命令便可向变量aa赋值abcd。如果变量aa已被定义,则aa的值被修改为abcd;若aa尚未定义,则此句命令即可定义新的变量aa,同时为变量aa赋予初始值abcd。
删除变量:set aa= 此句命令即可删除变量aa。若变量aa已被定义,则删除变量aa;若aa尚未定义,则此句命令为实质意义。
需要说明的是,批处理中的变量是不区分类型的,不需要像C语言中的变量那样还要区分int、float、char等。比如执行set aa=345后,变量aa的值既可以被视为数字345,也可以被视为字符串345。set命令具有扩展功能,如用作交互输入、字符串处理、数值计算等,属于高级命令范畴。
更多精彩在: