批处理和JS的循环语句
1 概念:helps you interate through groups of files and directories,and to parse text files,strings and command output on a line-by-line basis.
2 注意事项
2.1 对有空格的文件名的文件的处理要加" "(路径中的文件夹名亦如此);
2.2 符号前一定要有空格;
2.3 In (`command`),符号“`”是esc键下的一个符号;;
2.4 在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable,而不是 %variable。
2.5 interator变量名必须在a-b、A-B内,大小写敏感,是一个初始变量;%0-9是批处理参数;系统变量引用:%systemroot%;
for %%var in (fileset) do comm |
文件集合 |
|
for /d %%var in (directorySet) do comm |
目录集合 |
不包括子目录 |
for /r [[driver:]path] %var in (fileset) do comm |
子目录中的文件 |
对以[path]指定为起点的整个目录树进行处理; |
for /l %%var in (start,step,end) do comm |
遍历一系列的值 |
命令重复执行n次; |
for /f ["options"] %%var in (file-set) do comm |
分析文本文件中的每一行 |
循环解析文本
以行为基础进行分析 |
for /f ["options"] %%var in ("string") do comm |
分析字符串 |
for /f ["options"] %%var in (`command`) do comm |
分析命令输出 |
选项 |
字段匹配选项 |
路径 |
处理目标集 对目标集执行的命令 |
备注 |
[/d] |
[“option”] |
[path] |
In () Do () |
|
|
|
|
文件集(空格分隔) |
|
/r |
|
|
文件集(空格分隔) |
|
/d |
|
path |
目录集(空格分隔) |
|
/l |
|
|
Start,step,end |
|
/f |
空格分隔 |
|
文本(文件、字符串、命令输出) |
|
1 for /r [[driver:]path] %var in (set) do command [command-parameters];检查以[drive:]path为根的目录树,指向每个目录中的for语句.如果在/r后没有指定目录,则使用当前目录.如果集为一个单点(.)字符,则枚举该目录树.
2 文本的立体解析,用一个或数个变量逐行进行,可以理解为行列式、二维数组、字段和记录的关系数据、excel数据列;文本可来源于文件、文本串或命令的输出;
For命令/f选项用于文件内容与命令输出信息分析的选项(空行默认忽略,用""界定,空格分隔) |
选项 |
选项描述 |
实例 |
实例描述 |
eol |
设置行尾注释字符,行尾注释字符后的所有数据都被命令看成是注释;end of line |
eol=# |
将#设置为行尾注释字符;忽略以#开始的行; |
skip |
设置文件起始处跳过的行数 |
skip=5 |
通过命令跳过源文件中的1-5行; |
delims |
设置名字段之间的分隔符,默认情况下为制表符或空格;(一行可以定义不同的符号将行分隔为不同的部分) delimit |
delims=,.: |
指定逗号、句点、分号为分隔符 |
tokens |
为每一源行设置令牌字段,如果以a或A作为起始的迭代变量,则至多可以指定26个令牌。默认情况下,只对第一个令牌进行检查.(指定处理的字段) |
tokens=1,3 |
%%A:wu %%B:wh |
tokens=2-4 |
%%A:wanqun %%B:wh %%C:wwuhn@hotmail.com |
tokens=* |
把每一行当作整体处理,而不分割为字段 |
usebackq |
规定可在源指定符中使用引号:对文件名使用双引号,对命令使用反引号(与~一起),对字符串使用单引号;quotation marks |
usebackq |
激活该选项 |
JS的for循环
For ([条件初始化];条件;[条件更新]{循环体语句}; |
条件初始化,条件判断;条件成立则执行语句;然后条件更新,判断… |
For(变量 in 对象或数组){循环体语句…} |
用来遍历对象的属性和数组中的元素,并对每个属性或元素执行操作; |
While(条件){循环体语句…} |
只要条件成立,则循环反复执行,直到条件不成立。 |
Do{循环体语句…}while(条件) |
与while语句不同的是,先执行一次循环体语句后才判断条件; |
break跳出循环体;continue:回到循环的条件判断处,(立即停止目前执行的循环)
for(initialize;test;increment){statement}=initialize;while(test){statement;increment}