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

    ---------siwuxie095

       

       

       

    (四)tokens=x,y,m-n 显示指定的列

       

    tokens=x 只显示第 x

    tokens=x,y,z 只显示第 xyz

    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" 12 数字之间,用的逗号必须是英文格式逗号

    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】

      

  • 相关阅读:
    改了信仰,”U秒英伟达,卡秒英特尔“
    我的技嘉GTX970G1Gaming
    入手笨球BL2710PE
    买显示器的各种纠结
    [转]关于液晶显示器的6bit面板、8bit面板及E-IPS
    Windows API中的数据结构
    C语言中函数参数传递
    修改powershell字体
    [知乎]学了 Python 之后,再学 Java 是不是会更容易?
    Windows10上用命令行,奢侈的享受?
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/6372251.html
Copyright © 2011-2022 走看看