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

    --------siwuxie095

       

       

       

       

    (三)delims=xxx

    (xxx 是被定义的符号,该符号在文本中存在,将作为分隔符)

       

    定义分隔符(用于切分文本)

       

       

    格式:

    FOR /F "Delims=符号" %%I IN (Command1) DO Command2

       

       

    用法:

    1、以文本中的标点符号来定义分隔符

    2、被定义为分隔符的标点符号将被忽略(隐藏)。没有使用 tokens

    定义显示,默认情况下只显示第一列内容

    3、被定义的分隔符前后内容将变成独立的小节(或列)

    4、for 默认以空格作分隔符,当没有写 "delims=",就默认以空格分隔

    5、分隔符可以是一个,也可以是多个

    6、用 delims 定义多个分隔符时,分隔符之间不能有空格。假如要包含

    空格,空格不能居于所有符号之前或中间,必须放在最后

    7、 我们写的代码为 "delims=",即有写 delims 参数 ,但没指明什么符

    号作为分隔符,那么程序将认为文本没有分隔符,所有内容都会被显示

       

       

       

    有人说 "delims=" 这个句子,在某些情况下,程序会将等号后面的双引号

    定义成了分隔符,从而没有达到预期的效果。于是,有些人将 "delims="

    代码改写为"delims==",将等号作为分隔符。经实际测试,还没发现

    "delims=" 会将双引号定义成分隔符,所以,不要采用 "delims==" 这种

    格式。假设真的有程序发生错乱,要定义的分隔符的最佳选择也不是等号,

    而是后引号 "` ",此符号在 Esc 键下面,非常罕见 ,将它定义为分隔符就

    等于定义没有任何符号为分隔符

       

       

       

    分隔符标点符号的联系和区别:

       

    分隔符是用 "delims= " 定义了的文本中的符号。文本中的符号,只要

    没有被定义过,就不是分隔符。分隔符需要定义,用 "delims= " 来定义,

    定义中的符号都来自文本。

       

       

    要弄清分节、分列。把每行两个分隔符之间的文字内容称为小节、列。

    注意 :是分隔符之间,而非文中标点符号之间

       

       

       

    如:将 《易经 · 乾》 的开头,保存为 易经.txt,文本内容:

       

       

       

    做实验:

    如果使用 Delims 来定义分隔符,可以使用原文中的冒号 (),

    写法是 "Delims=:",冒号作为分隔符后,冒号前后的内容被分成

    两个小节,列表如下:

       

      

    第一小节

    分隔符

    第二小节

    第一行

    元,亨,利,贞。

    第二行

    初九

    潜龙,勿用。

    第三行

    九二

    见龙再田,利见大人。

    第四行

    九三

    君子终日乾乾,夕惕若,厉无咎。

    第五行

    九四

    或跃在渊,无咎。

    第六行

    九五

    飞龙在天,利见大人。

    第七行

    上九

    亢龙有悔。

    第八行

    用九

    见群龙无首,吉。

       

    备注:默认只显示第一列(即第一小节),默认忽略(屏蔽)分隔符,

    默认忽略(屏蔽)第一个分隔符后面的内容

       

       

    代码:

    @echo off

    rem 分隔符的中英文要对应,这里是中文冒号

    for /f "delims=" %%a in (易经.txt) do echo %%a

    pause>nul

       

    sublime中:

       

       

    运行一览:因为没有定义要显示的列,这里只显示第一小节(列)

    的内容,默认情况下忽略第一个分隔符(冒号)及其后面的内容

       

       

       

       

    冒号改为逗号:

    @echo off

    rem 分隔符的中英文要对应,这里是中文逗号

    for /f "delims=" %%a in (易经.txt) do echo %%a

    pause>nul

       

    sublime中:

       

       

    运行一览:第一个逗号及其后面的所有内容都没有显示出来

       

       

       

       

       

    再如:

    @echo off

    rem 等号 = 后面直接由引号引起,即没有分隔符

    for /f "delims=" %%a in ("Hello "siwuxie095" World") do echo %%a

    pause>nul

       

    sublime中:

       

       

    运行一览:delims 写出来了,但没指明什么符号是分隔符,计算机

    认为字符串 "Hello "siwuxie095" World" 没有分隔符,显示第一列

    即显示所有内容

       

       

       

       

    【made by siwuxie095】

       

       

  • 相关阅读:
    优秀数
    加法检测器
    数字转换
    选课
    二叉苹果树
    分离与合体
    括号配对
    凸多边形的划分
    能量项链
    石子合并
  • 原文地址:https://www.cnblogs.com/siwuxie095/p/6371991.html
Copyright © 2011-2022 走看看