码迷,mamicode.com
首页 > 其他好文 > 详细

【分享】批处理中分割字符串

时间:2014-10-22 17:46:22      阅读:109      评论:0      收藏:0      [点我收藏+]

标签:ar   for   sp   div   bs   as   har   技术   编程   

 

把一个字符串按照特定的字符分割成多个子字符,一般的编程语言中都提供内置的方法来实现这个功能,在批处理中可以通过命令for来完成。命令格式如下:

for /f "tokens=x,y,m-n delims=chars" %%a in ("str")   do cmd

其中tokens获取分割后字符串的列数,列数从1开始技术,可以指定多个,中间用“,”分割。tokens设置具体含义如下:

tokens=x	表示只提取第x列。
tokens=x,y	表示只提取第x列和第y列。
tokens=m-n	表示提取第m列至第n列。
tokens=x*	表示提取第x列和后面所有字符串都作为第x+1列。
tokens=x,*	等同tokens=x*
tokens=x,y,m-n	表示提取第x,y列以及第m至第n列。

delims是指定风格字符,可以指定多个,例如:delims=xy,表示以x或者y作为分隔符。注意:tokens和delims必须在同一对引号中。

tokens参数决定了输出变量的个数,%%a表示第一个变量引用,%%b表示第二个变量引用,依次类推。也可以指定第一个变量为%%m、%%n等,总之下一个变量字符是上一个变量的ascii码值加1。

一个简单例子如下:

@echo off

set str=100x200x300y400y500x600y700

for /f "tokens=1,3-5,* delims=x|y" %%a in ("%str%") do (
	set c1=%%a
	set c3=%%b
	set c4=%%c
	set c5=%%d
	set c6=%%e

)

echo %c1%, %c3%, %c4%, %c5%, %c6%

pause

输出结果为:100, 300, 400, 500, 600y700。其中tokens=1,3-5,*表示提取第1、3至5列,同时把第5列后所有剩余字符串作为第6列,一个输出了5个变量,也可以写作tokens=1,3,4,5,*。

【分享】批处理中分割字符串

标签:ar   for   sp   div   bs   as   har   技术   编程   

原文地址:http://www.cnblogs.com/itwuya/p/4043546.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!