---------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】

  

for 续4的更多相关文章

  1. .Net Core MVC 网站开发(Ninesky) 2.3、项目架构调整(续)-使用配置文件动态注入

    上次实现了依赖注入,但是web项目必须要引用业务逻辑层和数据存储层的实现,项目解耦并不完全:另一方面,要同时注入业务逻辑层和数据访问层,注入的服务直接写在Startup中显得非常臃肿.理想的方式是,w ...

  2. [.NET] C# 知识回顾 - 委托 delegate (续)

    C# 知识回顾 - 委托 delegate (续) [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6046171.html 序 上篇<C# 知识回 ...

  3. iOS 开发者账号到期续费流程

    1.登录developer.apple.com,查看到期时间 2.到期提醒通知,点击Renew Membership续费(一般提前一个月提醒续费) 3.个人开发者账号续费需要支付 688人民币/年(9 ...

  4. 微信公众号开发系列教程一(调试环境部署续:vs远程调试)

    http://www.cnblogs.com/zskbll/p/4080328.html 目录 C#微信公众号开发系列教程一(调试环境部署) C#微信公众号开发系列教程一(调试环境部署续:vs远程调试 ...

  5. CI-持续集成(1)-软件工业“流水线”概述

    CI-持续集成(1)-软件工业“流水线”概述 1   概述 持续集成(Continuous integration)是一种软件开发实践,即团队开发成员经常集成它们的工作,通过每个成员每天至少集成一次, ...

  6. 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续3篇-导出时动态生成多Sheet EXCEL)

    ExcelUtility 类库经过我(梦在旅途)近期不断的优化与新增功能,现已基本趋向稳定,功能上也基本可以满足绝大部份的EXCEL导出需求,该类库已在我们公司大型ERP系统全面使用,效果不错,今天应 ...

  7. [译]Godot系列教程三 - 场景实例化(续)

    场景实例化(续) 要点 场景实例化带来很多便利的用法,总体来说有: 将场景细分,更便于管理 相对于某些引擎中的Prefab组件更灵活,并且在许多方面更强大 是一种设计更复杂的游戏流程甚至UI的方式 这 ...

  8. 【小白的CFD之旅】13 敲门实例【续3】

    接上文[小白的CFD之旅]12 敲门实例[续2] 4 Results4.1 计算监测图形4.2 Graphics4.2.1 壁面温度分布4.2.2 创建截面4.2.3 显示截面物理量4.2.4 Pat ...

  9. 【小白的CFD之旅】12 敲门实例【续2】

    接上文[小白的CFD之旅]敲门实例[续] 主要内容 3 Solution3.1 Solution Methods3.2 Solution Controls3.3 Monitors3.4 Report ...

  10. jquery实现简单瀑布流布局(续):图片懒加载

    # jquery实现简单瀑布流布局(续):图片懒加载 这篇文章是jquery实现简单瀑布流布局思想的小小扩展.代码基于前作的代码继续完善. 图片懒加载就是符合某些条件时才触发图片的加载.最常见的具体表 ...

随机推荐

  1. PostgreSQL逻辑复制槽

    Schema | Name | Result data type | Argument data types | Type ------------+------------------------- ...

  2. AI产业将更凸显个人英雄主义 周志华老师的观点是如此的有深度

    今天无意间在网上看的了一则推送,<周志华:AI产业将更凸显个人英雄主义> http://tech.163.com/18/0601/13/DJ7J39US00098IEO.html 摘录一些 ...

  3. OLEDB操作Excel

    使用OLEDB操作Excel 的方法 OleDbConnection conn = null;            try            {              //fileName ...

  4. C# Socket笔记

    看到这个题目,是不是很眼熟?在博客园里搜下,保证会发现关于这个东东的文章实在是太多了~~~真得是没有写得必要,而且我也有点懒得去琢磨字句.(看到这,肯定得来个转折的了,不然就看不到下文了,不是吗)但是 ...

  5. Visual Studio 2005 自带单元测试

    一 单元测试简介   单元测试是代码正确性验证的最重要的工具,也是系统测试当中最重要的环节.也是唯一需要编写代码才能进行测试的一种测试方法.在标准的开发过程中,单元测试的代码与实际程序的代码具有同等的 ...

  6. Linux中epoll+线程池实现高并发

    服务器并发模型通常可分为单线程和多线程模型,这里的线程通常是指“I/O线程”,即负责I/O操作,协调分配任务的“管理线程”,而实际的请求和任务通常交由所谓“工作者线程”处理.通常多线程模型下,每个线程 ...

  7. Java9的新特性

    2017.9.21延期了好几次的Java9正式发布,在人工智能的时代,java还能不能持续辉煌是个问题.看看java9的新特性没什么让自己想升级的意愿,因为要么时一些特性用不到,要么时已经有其它方案代 ...

  8. linux中内核延时函数 (转)

    第一类延时函数原型是:(忙等) void ndelay(unsigned long nsecs); void udelay(unsigned long usecs); void mdelay(unsi ...

  9. vim自定义配置之常规设置

    vimConfig/plugin/general-operation.vim "快速关闭 map <S-Q> :q<CR>:q<CR>:q<CR&g ...

  10. Android Studio使用JDBC远程连接mysql的注意事项(附示例)

    JDBC为java程序访问各种类型的关系型数据库提供了统一的接口,用户不必针对不同数据库写出不同的代码,但是使用JDBC必须得下载相应的驱动,比如我这里是要连接mysql,于是就到mysql官网去下载 ...