zoukankan      html  css  js  c++  java
  • for 续1

    --------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=cskip=ndelims=xxxtokens=x,y,m-nusebackq

       

       

    如:当前目录下有一个 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】

       

       

  • 相关阅读:
    新项目反思
    nei网访问
    react
    css沉默
    沉默
    node准备
    C++学习(八):删除文件
    利用工具格式化日期文本
    PageHelper 记录总条数不正确问题处理
    tk.mybatis 多个or条件拼接
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/6371675.html
Copyright © 2011-2022 走看看