--------siwuxie095

 
 

 
 

 
 

 
 

/f

是四个参数中最复杂的一个,非常强大,不过其复杂性

令人望而生畏

 
 

/f 用途:

能够对字符串进行操作,也能够对命令的返回值进行操作,

还可以访问硬盘上的 ASCII 码文件,比如 txt 文档等

 
 

常用于文本信息编辑,如查询、提取、替换等

 
 

 
 

格式:

 
 

FOR /F ["options"] %%variable IN (file-set) DO command
[command-parameters] 文件名

file-set 不用引号(如果文件名含有空格时,就需要借助 usebackq 了)

 
 

FOR /F ["options"] %%variable IN ("string") DO command
[command-parameters] 字符串

string 要用双引号

 
 

FOR /F ["options"] %%variable IN ('command') DO command
[command-parameters] 命令

command 要用单引号

 
 

注意:带引号的字符串
"options"
包括一个或多个指定不同解析选项的关键字:

eol=c、skip=n、delims=xxx、tokens=x,y,m-n、usebackq

 
 

 
 

如:当前目录下有一个
test.txt
文件(格式改为ANSI,否则乱码)

@echo off

for /f %%i in (test.txt) do
echo
%%i

pause

 
 

运行一览:一下子显示文件的所有内容

 
 

 
 

 
 

如果要逐行显示:

@echo off

for /f %%i in (test.txt) do
echo
%%i & pause>nul

pause

 
 

 
 

 
 

 
 

解析选项关键字详解:

(一)eol=c 忽略(隐藏、屏蔽)所有以字符是 C 开头的行

格式:

FOR /F "eol=c" %%I IN (Command1) DO Command2

 
 

"指定行尾字符(仅一个字符)",来源于帮助文件,尚不清楚其含义

 
 

eol=

默认情况下屏蔽冒号开头的行(无论是中文冒号还是英文冒号,都会被屏蔽掉)

但冒号本身不会被屏蔽,还是会被显示出来

 
 

注意:这里被处理的文本里的冒号和后面的文字字符必须有空格隔开,

否则无法对文本进行屏蔽

 
 

 
 

 
 

 
 

eol=c 格式:

 
 

如:文本
静夜思.txt 的内容:

 
 

 
 

 
 

要略掉第三行,如下:

@echo off

for /f "eol=举"
%%i in (静夜思.txt) do
echo
%%i

pause>nul

 
 

sublime中:

 
 

 
 

运行一览:

 
 

 
 

 
 

上面的
test.bat 和 静夜思.txt 实际上在同一目录下,所以

没有指出
静夜思.txt 的路径,test.bat 自动在当前目录下

搜索,若没有
静夜思.txt,显示找不到文件

 
 


test.bat 在F盘,静夜思.txt 在D盘,则需要指明路径:

@echo off

for /f "eol=举"
%%i in (D:\静夜思.txt) do
echo
%%i

pause >nul

 
 

 
 

 
 

eol=c 格式,不能屏蔽以空格开头的行

 
 

如:文本
春夜喜雨.txt 的内容:

 
 

 
 

 
 

代码:

@echo off

rem 等号 = 后面一个空格

for /f "eol= "
%%i in (春夜喜雨.txt) do
echo
%%i

pause>nul

 
 

 
 

sublime中:

 
 

 
 

运行一览:将原文本前导空格都屏蔽掉,其他全部输出

 
 

 
 

 
 

 
 

eol=c 格式,空格不在行首,能屏蔽掉该行空格以后的内容

 
 

如:文本
念奴娇.txt 的内容:

 
 

 
 

代码:

@echo off

rem 等号 = 后面一个空格

for /f "eol= "
%%i in (念奴娇.txt) do
echo
%%i

pause>nul

 
 

sublime中:

 
 

 
 

运行一览:所有空格以后的内容都被屏蔽掉

 
 

 
 

 
 

 
 

 
 

eol=c 格式, c 字符不是某一行的开头字符,就不能屏蔽掉该行

 
 

同样使用上面的
春夜喜雨.txt:

@echo off

for /f "eol=风"
%%i in (春夜喜雨.txt) do
echo
%%i

pause>nul

 
 

运行一览:将原文本前导空格都屏蔽掉,其他全部输出

 
 

 
 

 
 

 
 

 
 

eol= 格式

 
 

如:春夜喜雨.txt 改为:

(加的冒号中英文格式均可,和后面的文字之间要隔空格,

否则无法屏蔽)

 
 

 
 

 
 

代码:

@echo off

rem 等号 = 后面无空格,直接用引号

for /f "eol="
%%i in (春夜喜雨.txt) do
echo
%%i

pause>nul

 
 

sublime中:

 
 

 
 

运行一览:屏蔽并没有屏蔽冒号本身

 
 

 
 

 
 

若要屏蔽冒号:

@echo off

rem 等号 = 后面加一个冒号,格式和诗中所加冒号一致

rem 这里均采用的是中文冒号

for /f "eol=:"
%%i in (春夜喜雨.txt) do
echo
%%i

pause>nul

 
 

sublime中:

 
 

 
 

运行一览:所有以冒号开头的行都被屏蔽掉,包括冒号本身

 
 

 
 

 
 

 
 

 
 

【made by siwuxie095】

 
 

 
 

for 续1的更多相关文章

  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. 宏使用 Tricks

    人为地定义一些"无意义"的宏(宏名本身有意义),以起到提升代码程序的可读性. 1. IN/OUT 指定参数用于输入还是输出: #define IN #define OUT void ...

  2. 2018-2019-1 20165212 《信息安全系统设计基础》第八周学习总结(pwd)

    2018-2019-1 20165212 <信息安全系统设计基础>第八周学习总结 一.知识点总结 1.三种并发方式 构造并发程序的方法有三种: 进程 线程 I/O多路复用 进程:用内核来调 ...

  3. 随笔:关于 FastAdmin ueditor 插件 中的 rand mt_rand mt_getrandmax 问题

    随笔:关于 FastAdmin ueditor 插件 中的 rand mt_rand mt_getrandmax 问题 问题来源 一位小伙伴在使用 Ueditor 插件时出错,因为用的是 php7.1 ...

  4. Nginx 服务器伪静态配置不当造成 Access denied

    Nginx 服务器伪静态配置不当造成 Access denied 有群有反馈将 FastAdmin 布署到阿里云后无法打开后台. 出现如下提示,首页是可以打开,点登录链接后出现的.(下是群友的截图) ...

  5. Jqmobile Secha Ionic比较

    1. Jqmobile 轻量级框架,它的语言基于 jquery 语言容易上手,运行速度快,但是没有 MVC 多人协作 开发的概念,项目比较大后 代码不易维护     (中小项目  1-2 个人开发很适 ...

  6. [java] java 实现FTP服务器文件的上传和下载

    利用Apache commons-net 实现: package com.xwolf.driver.util; import com.xwolf.driver.exception.RunExcepti ...

  7. 几个与JVM相关的JDK工具:jps, jstat, jmap

    在项目中遇到OOM(Out of Memory)的问题,为了分析内存和JVM的垃圾回收器GC问题,一并把JVM相关的一些工具也研究了一下: jps:Java进程查看工具,实际上它和Unix/Linux ...

  8. pycharm修改代码模板支持中文输出

    python2.x默认不支持中文输出,需要在py的开头添加 #coding: utf- 在pycharm里面,选项,editor,file and code templates,选择python sc ...

  9. VS2017开发Linux平台上的程序

    重装系统后安装VS2015时卡住了,于是试试看VS2017怎样,听说还支持调Linux.发现VS2017跟12/13/15又有了新的飞跃,竟然支持模块化下载,对于我这种主要写C++简直是个福音,勾了L ...

  10. wchar_t char string wstring 之间的转换

    wchar_t char string wstring 之间的转换 转:http://blog.csdn.net/lbd2008/article/details/8333583 在处理中文时有时需要进 ...