---------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. 【python】venv使用

    virtualenvwrapper 比 virualenv 好用一些. 准备 export WORKON_HOME=~/venv source /usr/bin/virtualenvwrapper.s ...

  2. Ubuntu网络配置IP和DNS等,适用于14.04,16.04和17.10

    本文主要介绍Ubuntu系统的网络设置,包括IP,DNS和主机名等,适用于14.04,16.04和17.10等版本 ===============  完美的分割线 ================ = ...

  3. CF1082G:G. Petya and Graph(裸的最大闭合权图)

    Petya has a simple graph (that is, a graph without loops or multiple edges) consisting of n n vertic ...

  4. (转)类的sizeof

    来源:http://www.360doc.com/content/12/0315/17/3349869_194600377.shtml

  5. Jenkins搭建windows service自动编译发布环境

    类库项目(Task)部署 前面搭建了Web站点的环境,类库项目发布不同于站点项目,它只需要将MSBuild编译出来的dll复制到目标服务器上即可,而不需要通过Web Deploy,下面来说一下如何发布 ...

  6. cocos2dx 安卓真机调试问题汇总

    cocos compile编译apk问题汇总: 1,dx编译报错,没有足够的空间 ANTBUILD : [dx] error : Could not create the Java Virtual M ...

  7. Spring Boot 报错:Error creating bean with name 'entityManagerFactory' defined in class path resource

    spring boot 写一个web项目,在使用spring-data-jpa的时候,启动报如下错误: Error starting ApplicationContext. To display th ...

  8. C# List的深复制

    1.关于深拷贝和浅拷贝 C#支持两种类型:值类型和引用类型 值类型(Value Type):如 char, int, float,枚举类型和结构类型 引用类型(Reference Type):如Cla ...

  9. GIT-查看config配置信息

    config 配置指令 1 git config config 配置有system级别 global(用户级别) 和local(当前仓库)三个 设置先从system->global->lo ...

  10. [转]Spring 之 Bean 生命周期

    Spring 容器中可以注册多个后处理器,只要它们同时实现 org.springframework.core.Ordered 接口. 下载文件 :内容来自 <精通Spring+4.x++企业应用 ...