显示列表

语法
For /F ["options"] %variable In (file-set) Do command [command-parameters]

options 参数说明
eol=c
指一个行注释字符的结尾(就一个)

skip=n
指在文件开始时忽略的行数。

delims=xxx
指分隔符集。这个替换了空格和跳格键的默认分隔符集。

tokens=x,y,m-n
指每行的哪一个符号被传递到每个迭代的 for 本身。这会导致额外变量名称的分配。m-n格式为一个范围。通过 nth 符号指定 mth。如果符号字符串中的最后一个字符星号,那么额外的变量将在最后一个符号解析之后分配并接受行的保留文本。

一个简单例子
Text.txt文件内容如下:
1,小明,80,85
2,小红,90,95
#3,小强,90,95

For /F "tokens=2,* delims=, " %%i In (Text.txt) Do (Echo %%i %%j)
这里分析 Text.txt 文件中的内容,每次读取一行,每行以逗号分隔,取第2列
这样 %%i 表示第二列的内容,%%j 就是星号中的内容,星号就是第二列后面的全部内容


For /F "eol=# tokens=2,* delims=, " %%i In (Text.txt) Do (Echo %%i %%j)
和上面相比少了第三行,因为第三行以井号开头,eol=# 指定了以井号开头的行为注释行不分析

For /F "eol=# skip=1 tokens=2,* delims=, " %%i In (Text.txt) Do (Echo %%i %%j)
多了一个 skip=1,表示从跳过第一行,从第二行开始。

还可以这样
For /F "tokens=1,2,3,* delims=, " %%i In (Text.txt) Do (Echo %%i %%j %%k %%l)

可以不用参数
For /F %%i In (Text.txt) Do (Echo %%i)
这样,每次读取一行内容,显示出来。

返回摘要 | 分类(批处理) | 访问(11) | 编辑