ITPub博客

首页 > Linux操作系统 > Linux操作系统 > windows批处理之一:字符串处理

windows批处理之一:字符串处理

原创 Linux操作系统 作者:regonly1 时间:2010-11-26 22:06:59 0 删除 编辑
好久没有写技术类的篇目了,这两天刚刚好有点收获,记录一下,以备后忘。
      我们知道,在几乎所有的编程语言中,都会有关于字符串操作的函数。对于字符串截取这种最常用的字符串操作,sql中、c中、awk中都提供了substr这个函数,而在shell中,则有一种另外形式的“函数”,${str:pos:len},含义一看就明白,跟substr很相似吧。但是,我们这里要说的不是编程语言,也不是shell,而是windows下的批处理脚本。
      Windows的批处理没有多少的学习过,所以一直都是简单的一些命令堆砌而已。这两天经过一番摸索,学到了一些其他的用法,就比如说上面提到的字符串截取,bat就可以这么处理:
set str=%str:~1,10%
很奇怪的用法,是吧?windows确实够奇怪的,不仅字符串截取类函数搞得很奇怪,连for循环也用的很奇怪,要不是一篇比较好的文章介绍,我还真没想法学习下去。好了,废话少说,先解释一下上面这个命令的含义:
      其实说穿了很简单,就是截取字符串str中,从二个位置开始的,长度为10的字符串。疑?为啥是第二个位置?嘿嘿,是比较奇怪,这个bat的处理跟c语言类似,是从0开始计数的,即0表示第一个位置。
      那么,如果我要截取某个位置以后的全部字符呢?可以这样:
set str=%str:~1%
本质上,跟substr函数一样,所以说,语言只是工具,关键在于有这个思想。只要你了解过其他substr的用法,就能联想到如何将同样的用法用到这里来。
      当然,除了截取字符串,还有替换。假如要替换字符串中的某些字符为其他字符,该怎么做呢?
      下面就是新的用法了:
set str=%str:,t=,tmp_%
什么意思?
      别急,慢慢来。首先,我们从前面的截取用法已经知道,字符串操作的基本用法是,先用前后%引用变量(这个跟shell下的${}真的very的相似啊),然后,以冒号(:)作为操作的开始符,表示我后面就要动手了。接着,如果是一个截取操作,则需要用~来表明开始要进行字符串截取了。如果是一个替换操作,则指明要替换的字符(在这里是“,t”),然后用“=”表示后面将要出现替换为的字符(“tmp_”),这样,一个替换命令就完成了。是不是很简单?赶快实验一下吧,所有bat环境都适用哦~~~。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12932950/viewspace-680419/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 深圳行-三
请登录后发表评论 登录
全部评论

注册时间:2008-05-10

  • 博文量
    257
  • 访问量
    1069894