精华内容
下载资源
问答
  • windows 分割字符串 for /f

    千次阅读 2020-03-18 18:25:35
    Windows平台可通过 for /f 来分割字符串 例如我们对产品的版本号进行分割: @echo off set ver=2.1.001.0001 for /f "delims=. tokens=1,2,3,4" %%a in ("%s%") do ( echo %%a echo %%b echo %%c echo %%d ) ...

    Windows平台可通过 for /f 来分割字符串

    例如我们对产品的版本号进行分割:

    @echo off
    set ver=2.1.001.0001
    for /f "delims=. tokens=1,2,3,4" %%a in ("%s%") do (
        echo %%a
        echo %%b
        echo %%c
        echo %%d
    )

    参数解释:

    delims:分隔符,默认是空格

    tokens:指每行的哪一个符号被传递到每个迭代的 for 本身,也就是分割后你需要哪几个值,从1开始递增,用逗号隔开

    %%a:in前边的%%a是标志从哪个字母开始给赋值,这里是从a开始,也可以改成其他字母,但是只能是一个字母,并且取值的时候字母只能顺延

    in:需要遍历的内容,可以是字符串,也可以是文件,字符串需要带双引号,文件不需要带双引号

    do:取值,用值。第一个值%%a,第二个值%%b,以此类推,tokens写到几,这里就可以拿到几个值。

    输出结果如下图所示:

    展开全文
  • 批处理--delims分割字符串 使用delims的目的主要是通过切分字符串获得可编辑的字符串以便于进行下一步编辑。Delims好比一把西瓜刀,文本信息就好比西瓜,使用delims这把西瓜刀将文本这个西瓜切分成许多小块,这样...

    批处理--delims分割字符串

    使用delims的目的主要是通过切分字符串获得可编辑的字符串以便于进行下一步编辑。Delims好比一把西瓜刀,文本信息就好比西瓜,使用delims这把西瓜刀将文本这个西瓜切分成许多小块,这样吃起来就方便了。…… -
    代码:
    @echo off
    for /f "delims=:" %%a in (易经.txt) do echo %%a
    pause>nul
    运行结果将显示第一小节(列)的内容。
    原因是没有定义显示的列,默认情况下忽略第一个分隔符(冒号)后面的内容。
    要显示列,需要用到下节学习的tokens。如:
    @echo off
    for /f "tokens=1,2 delims=:" %%a in (易经.txt) do echo %%a %%b
    pause>nul
    你也可以使用冒号(:)和逗号(,),写法是“delims=:,”(使用英文双引号)。原文中的每行文字将被作为分隔符的冒号和逗号分成多个小节:(不知道百度怎么搞的,竟然说我的表格超载!省略了)
    代码:
    @echo off
    for /f "delims=:," %%a in (易经.txt) do echo %%a
    pause>nul
    运行结果将显示第一小节(列)的内容。
    没有定义列的时候,默认只显示第一列,忽略分隔符和第一个分隔符后的内容。
    例如:文本“静夜思.txt”的内容是:
    床前明月光,疑是地上霜,举头望明月,低头思故乡。
    文本中有四句古诗,诗句之间用逗号分隔。古诗原本是没有标点符号的,标点符号是后人才加上去的。逗号在语文上是语气暂停的意思,其实就是用来分隔语句意思以便于阅读和理解。Delims=,的意思就是提取逗号做分隔符,并以此将诗句分成四个小列或小节。
    第一列 分隔符 第二列 分
    隔
    符 第三列 分
    隔
    符 第三列 
    第一行 床前明月光 , 疑是地上霜 , 举头望明月, , 低头思故乡。 
    
    如果我要用for将四句诗都显示到屏幕上,不需要任何参数即能实现:
    @echo off
    for /f %%i in (静夜思.txt) do echo %%i 
    pause>nul
    如果我只要“床前明月光”这句话,就需要delims帮忙了:
    @echo off
    for /f "delims=," %%i in (静夜思.txt) do echo %%i 
    pause>nul
    讲解:
    delims=后面跟了一个逗号,表示用原文中的逗号作为分隔符(划分的方法)将古诗分成四个小节。默认情况下,delims只显示分隔符前的第一小节,分隔符通常被忽略掉。显示其他小节的诗句要用到列提取命令“tokens”。
    仍用前面eol里的文本“a.txt”做试验。
    例:如何只显示每行的第一个标点前的内容?
    @echo off
    for /f "eol=: delims=,, " %%i in (a.txt) do echo %%i 
    pause>nul
    运行结果显示:
    aaa
    iii
    eee
    你好
    注意:
    文本中有英文的点号和中文的逗号,点号要放在逗号前面。
    符号集中(也就是=后面的标点符号),各个符号之间没有空格。
    文本中用空格分隔的,符号集里中文逗号后面只有一个空格,且必须放到最后。
    用于分隔的标点符号重复的一般只取一个做代表。
    for默认是以空格和,:;/等标点符号作分割符的,所以要取得整行内容通常会用"delims="这样的形式来取消for的默认分割符。
    例:为什么第三行的iii后面的内容不见了?
    @echo off
    for /f    %%i in (a.txt) do echo %%i 
    pause>nul
    讲解:
    这里没有使用delim进行分隔,而带有空格的行空格后面的内容被忽略了,原因就是默认情况下,也就是没有即使没有用delims选项,for也会以空格作为分隔符,将空格后的内容屏蔽掉。
    使用delims的目的主要是通过切分字符串获得可编辑的字符串以便于进行下一步编辑。Delims好比一把西瓜刀,文本信息就好比西瓜,使用delims这把西瓜刀将文本这个西瓜切分成许多小块,这样吃起来就方便了。
    如果你想吃其中的某一块,怎么办呢?直接用刀叉tokens提取就可以了。
    展开全文
  • DOS截取字符串的方法

    2014-03-13 22:42:24
    为了说明截取变量中字符串的问题曾经举过如下这个例子: @echo off set str=123456789 echo 第一个字符为:%str:~0,1% echo 头两个字符为:%str:~0,2% echo 头5个字符为:%str:~0,5% echo 去掉最后一个字符后的...

    为了说明截取变量中字符串的问题曾经举过如下这个例子:

    @echo off
    set str=123456789
    echo 第一个字符为:%str:~0,1%
    echo 头两个字符为:%str:~0,2%
    echo 头5个字符为:%str:~0,5%
    echo 去掉最后一个字符后的字符串为:%str:~0,-1%
    echo 去掉最后3个字符后的字符串为:%str:~0,-3%
    echo 第4个字符为:%str:~3,1%
    echo 第4个及其之后的3个字符为:%str:~3,4%
    echo 最后一个字符为:%str:~-1%
    echo 最后一个字符为:%str:~-1,1%
    echo 最后一个字符为:%str:~-1,2%
    echo 倒数第4个字符为:%str:~-4,1%
    echo 倒数第4个及其之后的字符为:%str:~-4%
    echo 倒数第4个及其之后的1个字符为:%str:~-4,2%
    echo 倒数第4个及其之后的2个字符为:%str:~-4,3%
    pause

    为了说明这个问题,我在这里把批处理取字符,做下进一步的解释,希望对新手有所启发
    如下:
    echo %var:~n,k% 
    我们在这里对每个参数做个说明:"%var",即我们要从中要截取字符的字符串." ~ "取字
    符标志符(我是这么理解的),"n" 我们将其理解为指针,"k"我们将其理解为偏移地址.(注
    :指针和偏移地址都是从零开始数的)
    我们还是用namejm版主的例子做下说明:

    @echo off
    set str=123456789
    rem 定义一个str字符串为123456789
    echo 第一个字符为:%str:~0,1%
    rem 指针为0,偏移地址为1,即从第0位开始,取1位
    echo 头两个字符为:%str:~0,2%
    rem 指针为0,偏移地址为2,即从第0位开始,取2位
    echo 头5个字符为:%str:~0,5%
    rem   指针为0,偏移地址为5,即从第0位开始,取5位
    echo 去掉最后一个字符后的字符串为:%str:~0,-1%
    rem 当"k"为负值时,我们可以这样理解:从指针开始处开始取其后面所有字符,然后减去后面"abs(k)位"..所以这个句字我们可以做如下解释:从第0位开始取其全部字符
    为:123456789然后从后面减去abs(k)位,所以最后结果为:12345678
    echo 去掉最后3个字符后的字符串为:%str:~0,-3%
    rem   该句解释同上↑
    echo 最后一个字符为:%str:~-1%
    rem   参数"n,"和"k"都可以为缺省,缺省"n,"时可以理解为:从abs(k)位开始取其全部
    echo 倒数第4个及其之后的字符为:%str:~-4%
    rem         解释同上↑
    echo 最后一个字符为:%str:~-1,1%
    rem   n为负值时,表示从后面开始截取字符,取k位(此时n应从1开始数)
    echo 最后一个字符为:%str:~-1,2%
    rem   解释同上↑
    echo 倒数第4个字符为:%str:~-4,1%
    rem   解释同上↑
    echo 倒数第4个及其之后的1个字符为:%str:~-4,2%
    rem   解释同上↑
    echo 倒数第4个及其之后的2个字符为:%str:~-4,3%
    rem 解释同上↑
    pause


    展开全文
  • PAT 命令For分割字符

    2014-12-19 17:45:11
    dos下面的批处理文件还是比较强大的,虽然刚开始觉得很不好用。遇到这么一个问题:用户输入一个新的版本号,解析其中的每个数字。例如一个版本号是"5.4.6",则要用"."分割开,然后提取其中的每个数字。处理命令为: ...

    dos下面的批处理文件还是比较强大的,虽然刚开始觉得很不好用。遇到这么一个问题:用户输入一个新的版本号,解析其中的每个数字。例如一个版本号是"5.4.6",则要用"."分割开,然后提取其中的每个数字。处理命令为:

    @REM 首先提示用户输入字符串,如5.4.6

    @set /p inputVersion=version number:
    FOR /F "tokens=1,2,3 delims=." %%a IN ("%inputVersion%") DO CALL SETVERSION %%a %%b %%c

    setversion则又是另外一个bat文件,如下所示:

    @SET major=
    @SET minor=
    @SET tiny=
    @SET major=%1
    @SET minor=%2
    @SET tiny=%3

    dos中的for语句的do后面只能接一个命令,如果用goto的话,不知道参数怎么传递,所以只好调用另外一个bat文件了。

    对于上面的for语句要注意了。delims表示分隔符,tokens表示分割后的哪些字符需要传递到for循环中,也就是要进行do后面的命令行处理。如果输入5.4.6,那么1表示5,2表示4,3表示6,4就是空的了。如果tokens=1,则表示只把5传入do语句。如果tokens=1,2,3则表示4,5,6都要进行处理。奇怪的现象是,%%a代表第一个字符串,而2、3个字符串则是默认由%%a增加,即%%b, %%c表示。不知道如果变量不是%%a,后面的变量会是怎么表示。

    你还可以参看下面的例子,该例子引用自:http://www.ss64.com/nt/for_f.html
    这个例子比windows帮助上的说明要详细。

    Extracting data from this text file:

    January,Snowy,02
    February,Rainy,15
    March,Sunny,25
    FOR /F "tokens=1,3 delims=," %%G IN (weather.txt) DO @echo %%G %%H
    The tricky part is splitting up each the line into the right tokens, in this case I'm splitting on the comma character ','
    this splits the line into 3 chunks of text and we pull out the first and third items with "tokens=1,3"

    token1 ,token2 ,token3
    %%G<ignored>%%H
    January 02
    February 15
    March 25

    %%G is declared in the FOR statement and %%H is implicitly
    declared via the tokens= option. You can specify up to 26
    tokens via the tokens=
    line, provided this does not cause an attempt to declare a parameter higher
    than the letter 'Z'.
    FOR parameter names are global, so in complex scripts which call
    one FOR statement from within another FOR statement you can refer to both sets
    of parameters. You cannot have more than 26 parameters active at any one time.

    展开全文
  • cmd命令For分割字符

    千次阅读 2009-05-26 19:21:00
    <!-- google_ad_client = "pub-1992382271196226";/* 728x90, 创建于 08-3-9 */google_ad_slot = "1653402536";google_ad_width = 728;google_ad_height = 90;// --> dos下面的批处理文件还是比较强大的,虽然刚开
  • 批处理 字符分割

    千次阅读 2019-02-03 18:13:03
    分割字符串 @echo off ::定义一个以分号作为分隔的字符串 set str=AAA;BBB;CCC;DDD;EEE;FFF ::str的副本 set remain=%str% :loop for /f "tokens=1* delims=;" %%a in ("%remain%") do ...
  • 写的时候遇到了一些个大大小小的问题[DOS脚本是这两天现学的,菜鸟中的菜鸟...],比如在处理含有特殊字符的的字符串时,搞死我了。因为在模拟网页提交信息的时候,有个字符‘&’,它本身在DOS中有着特殊的功能,...
  • 1、截取字符串  截取字符串可以说是字符串处理功能中最常用的一个子功能了,能够实现截取字符串中的特定位置的一个或多个字符。举例说明其基本功能:
  • dos通过for命令截取字符

    千次阅读 2013-11-10 15:20:53
    分工上,delims负责切分字符串,而tokens负责提取字符串。如果把字符串当作蛋糕,Delims像刀子,用来切蛋糕,tokens像叉子,用来取切好的蛋糕。下面我们用实例来进行理解。  把以下内容保存为文本文件“歌曲列表...
  • 常用DOS命令d: 盘符切换dir 列出当前目录下的文件以及文件夹md 创建目录(文件夹... 回退一级目录cd\ 回到根目录del 删除文件cls 清屏exit 退出dos //**********************************华丽分割线**************...
  • class Solution { public: int balancedStringSplit(string s) { int count=0; int balance=0; for(int i=0;i<s.size();i++) { if(s[i]=='L') { balance++; } if(s
  • (3)字符分割   .partition() 保留指定字符自身 .rpartition()   .splitlines() 功能:将字符串按照换行位置进行切割操作 格式:字符串.splitlines([结束符号]) 返回值:列表——按照行分隔,返回一个...
  • 分割以冒号分隔的字符

    千次阅读 2012-04-11 14:28:45
    今天在网上想搜索怎样分割以冒号分隔的字符串,没找着以自身SQL函数进行分割的,自己写了个,如下是正确的语句: 例:在我的表t_reward中,有一字段c_reward 的值为: 2:206:5 3:0:100 1:120:10 要将每个记录以...
  • DOS命令FOR /F 字符处理功能

    千次阅读 2011-10-18 20:19:35
     (个人理解是:分割为几部分) usebackq - 指定新语法已在下类情况中使用:  在作为命令执行一个后引号的字符串并且一个单  引号字符为文字字符串命令并允许在 filenameset  中使用双引号扩起文件名称...
  • 分工上,delims负责切分字符串,而tokens负责提取字符串。如果把字符串当作蛋糕,Delims像刀子,用来切蛋糕,tokens像叉子,用来取切好的蛋糕。下面我们用实例来进行理解。 把以下内容保存为文本文件“歌曲列表.txt...
  • 分工上,delims负责切分字符串,而tokens负责提取字符串。如果把字符串当作蛋糕,Delims像刀子,用来切蛋糕,tokens像叉子,用来取切好的蛋糕。下面我们用实例来进行理解。  把以下内容保存为文本文件“歌曲列表....
  • namejm版主为了说明截取变量中字符串的问题曾经举过如下这个例子:@echo offset str=123456789echo 第一个字符为:%str:~0,1%echo 头两个字符为:%str:~0,2%echo 头5个字符为:%str:~0,5%echo 去掉最后一个字符
  • 相信很多人会用到将日期时间格式化成自己想要的字符串,在windows下使用这种批处理,有时候感觉很无奈,这里作一下简单的总结吧,没什么技术含量。权作是笔记,以免将来忘掉了。在Linux下,简单的一句话:date '+%Y%...
  • cdm 在dos下输入 ipconfig 找到对应的的ip 在host 添加 127.0.0.1 192.168.1.88  局域网就可以访问自本地 网站了
  • 在Linux下,简单的一句话:date '+%Y%m%d-%H%M%S'就可以...1. 直接用字符串格式化输出 比如,如果你的机器上时间的输出是这样子的: c:\>echo %date%-%time% 2012-03-31 星期六- 6:44:02.50 那么,要想得到输
  • DoS攻击

    千次阅读 多人点赞 2019-10-16 11:12:20
    DoS攻击 DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络宽带攻击和连通性攻击。 DoS攻击是指故意的攻击...
  • DOS中断

    千次阅读 2012-07-10 13:47:31
    DOS中断: 1、字符功能调用类(Character-Oriented Function) 01H、07H和08H —从标准输入设备输入字符 02H —字符输出 03H —辅助设备的输入 04H —辅助设备的输出 05H —打印输出 06H —控制台输入/输出 09...
  • tr删除一段信息中的文字,...last | tr '[a-z]' '[A-Z]'将小写字符转换为大写字符cat /etc/passwd | tr -d ':'删除 `:`操作系统间的文件换行转换unix2dos filename转换文件换行方式为window类型dos2unix filenam...
  • ASCII字符集,大家都知道吧,最基本的包含了128个字符。其中前32个,0-31,即0x00-0x1F,都是不可见字符。这些字符,就叫做控制字符。 这些字符没法打印出来,但是每个字符,都对应着一个特殊的控制功能的字符,...
  • dos攻击

    千次阅读 2016-03-05 23:51:00
    DoS是Denial of Service的简称,即拒绝服务,造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务。最常见的DoS攻击有计算机网络带宽攻击和连通性攻击。 DoS攻击是指故意的攻击网络协议实现...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,148
精华内容 6,459
关键字:

dos分割字符