---------siwuxie095
(四)tokens=x,y,m-n 显示指定的列
tokens=x 只显示第 x 列 |
tokens=x,y,z 只显示第 x,y,z 列 |
tokens=m-n 只显示从 m 列到 n 列(m<n) |
tokens=* 显示文本中的所有内容(此时,不管有没有用 delims 定义分隔符或定义了多少分隔符,文本的所有内容包括所有符号都会被显示出来) |
如:将 《易经 · 乾》 的开头,保存为 易经.txt,文本内容:
代码:
@echo off rem token 的1 和 2 之间的逗号必须为英文格式下的逗号 rem delims 的 = 后的冒号和 易经.txt 保持一致,为中文冒号 for /f "tokens=1,2 delims=:" %%a in (易经.txt) do echo %%a %%b pause>nul |
sublime中:
运行一览:以冒号为分隔符,显示第一列和第二列内容,冒号不显示
注意格式细节:
1、"tokens=1,2" 中 1 和 2 数字之间,用的逗号必须是英文格式逗号
2、这里需要显示两列的内容,echo 后面就需要用多个变量符号 %%a
和 %%b,同样,如果需要显示三列内容,就必须这么写
echo %%a %%b %%c
echo %%a %%b %%c |
3、for /f "tokens=1,2 delims=:" %%a in (易经.txt) do echo %%a %%b,
对于 in 前面用 %%a,则 echo 后面就必须以 %%a 变量开始,而且,后面的
变量必须以字母表顺序排列下去,否则无效
再如:
@echo off rem token 的1 和 3 之间的逗号必须为英文格式下的逗号 rem delims 的 = 后的逗号和 易经.txt 保持一致,为中文逗号 for /f "tokens=1,3 delims=," %%a in (易经.txt) do echo %%a %%b pause>nul |
sublime中:
运行一览:以逗号为分隔符,显示第一列和第三列的内容(其余
内容忽略),有些行没有第三列,就不显示
使用多个不同符号都作为分隔符:
@echo off rem token 的1 和 3 之间的逗号必须为英文格式下的逗号 rem delims 的 = 后的冒号、逗号和 易经.txt 保持一致,为中文格式 for /f "tokens=1,3 delims=:," %%a in (易经.txt) do echo %%a %%b pause>nul |
sublime中:
运行一览:以冒号和引号作为分隔符,只显示第一列和第三列的内容,
作为分隔符的冒号和逗号以及其它内容都不予显示
再如:
@echo off rem delims 的 = 后的冒号、逗号和 易经.txt 保持一致,为中文格式 for /f "delims=:," %%a in (易经.txt) do echo %%a pause>nul |
运行一览:虽然用多个符号将文本分成更多的列,
但显示时没有指出显示哪些列,将只显示第一小
节(列)的内容
对于 "delims=:," 这个句子,已有冒号和逗号两个符号,当然
还可以添加任意多的符号都作为分隔符,例如 "delims=,。?;",
这里有逗号、句号、问号和分号四个符号都作为分隔符。
注意:第一个符号前面以及所有符号之间不能有空格,如果要空格
也作为分隔符,那么空格必须写在所有符号的最后面,当然,也可
以单独将空格作为分隔符 "delims= "
如:文本 静夜思.txt 的内容:
Delims=, 即定义逗号为分隔符,以此将诗句分成四个小列(或小节)
| 第一列 | 分隔符 | 第二列 | 分隔符 | 第三列 | 分隔符 | 第四列 |
第一行 | 床前明月光 | , | 疑是地上霜 | , | 举头望明月 | , | 低头思故乡 |
要用 for 将四句诗都显示到屏幕上,不需要任何参数即能实现:
@echo off for /f %%i in (静夜思.txt) do echo %%i pause>nul |
运行一览:
如果没有任何参数的语句:
for /f %%i in (filename) do echo %%i
会忽略掉所有行的前导空格后将全部文本内容都显示出来
再如:将 易经.txt 改为:
代码:
@echo off for /f %%e in (易经.txt) do echo %%e pause>nul |
运行一览:
若改为:
@echo off for /f "tokens=1,3" %%e in (易经.txt) do echo %%e %%f pause>nul |
运行一览:
这里没有使用 delim 进行分隔,而带有空格的行,空格后面的内容被忽
略了,原因就是默认情况下,即使没有用 delims 选项,for 也会以空格
作为分隔符,将空格后的内容屏蔽掉
使用 delims 的目的主要是通过切分字符串,获得可编辑的字符串
以便于进行下一步编辑
Delims 好比一把刀,文本信息就好比猪扒,使用 delims 这把刀将
文本这块猪扒切分成许多小块,这样吃起来就很方便
如果你想吃其中的某一块,直接用 tokens 这把刀叉提取即可
【made by siwuxie095】
原文:http://www.cnblogs.com/siwuxie095/p/6372251.html