批处理for命令使用指南

2019-01-29 22:14:55王冬梅

还是上面的例子,执行如下命令:

for /f "tokens=2 delims= " %%i in (a.txt) do echo %%i

执行结果:
第1行第2列
第2行第2列
第3行第2列

如果要显示第三列,那就换成tokens=3。
同时tokens支持通配符*,以及限定范围。
如果要显示第二列和第三列,则换成tokens=2,3或tokens=2-3,如果还有更多的则为:tokens=2-10之类的。

此时的命令为:

for /f "tokens=2,3 delims= " %%i in (a.txt) do echo %%i %%j

怎么多出一个%%j?

这是因为你的tokens后面要取每一行的两列,用%%i来替换第二列,用%%j来替换第三列。
并且必须是按照英文字母顺序排列的,%%j不能换成%%k,因为i后面是j

执行结果为:
第1行第2列第1行第3列
第2行第2列 第2行第3列
第3行第2列 第3行第3列

对以通配符*,就是把这一行全部或者这一行的剩余部分当作一个元素了。

比如:

for /f "tokens=* delims= " %%i in (a.txt) do echo %%i

执行结果为:
第1行第1列第1行第2列 第1行第3列
第2行第1列 第2行第2列 第2行第3列
第3行第1列 第3行第2列 第3行第3列
其实就跟for /f %%i in (a.txt) do echo %%i的执行结果是一样的。

再如:

for /f "tokens=2,* delims= " %%i in (a.txt) do echo %%i %%j

执行结果为:
第1行第2列第1行第3列
第2行第2列 第2行第3列
第3行第2列 第3行第3列
用%%i代替第二列,用%%j代替剩余的所有

最后还有skip合eol,这俩个简单,skip就是要忽略文件的前多少行,而eol用来指定当一行以什么符号开始时,就忽略它。
比如:

for /f "skip=2 tokens=*" %%i in (a.txt)

您可能感兴趣的文章:

关于批处理中FOR语句的使用说明与学习技巧批处理FOR 中的Delims和Tokens总结批处理 FOR参数/F之tokens详解cmd forfiles 从文件夹或树中选择要进行批处理的文件(方便批量删除n天前的文件)浅谈PL/SQL批处理语句:BULK COLLECT与FORALL对优化做出的贡献使用批处理for命令清除事件查看器所有Windows EventLog日志批处理中常用命令介绍(Echo、rem、goto、call、pause、if、for)
相关文章 大家在看