[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 cjiabing 于 2012-5-15 00:39 编辑

格式:%str:~m,n%
str表示字符串变量,是一个从左至右的单向坐标轴,用位数表示单位,用横杠“-”表示反方向。
m表示指定位数、定位,从字符串的哪个位数开始提取;负的表示从后面第几位开始提取。
n表示指定个数,提取多少个字符;负的表示去掉后面多少个字符。
举例:
set str=我爱北京天安门
“我爱北京天安门”一共是7个字符;

字符  顺序 偏移量
-------------------------
我     1       0
爱     2       1
北     3       2
京     4       3
天     5       4
安     6       5
门     7       6

顺数的时候偏移量向后一位,也就是将位数减去1得到偏移量。比如第三位是“北”,偏移量就是3-1=2,提取时写成%str:~2,1%。

1、echo %str:~0,7%
表示从第1位开始提取,7表示提取7个字符串,显示“我爱北京天安门”。
2、echo %str:~0,3%
表示从第1位开始提取,一共提取3个,结果是“我爱北”。
3、echo %str:~4,3%
表示从第5位开始提取,一共提取三位,结果“天安门”。
4、echo %str:~0,-3%
表示从1位开始提取,排除掉、去掉最后3位,结果是“我爱北京”。
5、echo %str:~-3,3%
表示从倒数第3位开始提取,一共提取3位,结果是“天安门”。
6、echo %str:~-5,-2%
表示从倒数第5位开始提取,排除最后两位,提取两者中间的字符,结果是“北京天”。
从后面往前面数第5位是“北”,最后两位是“安门”,中间的就是“北京天”。


实在无聊在此乱打,随便看罢!如果要口诀可以这样:
左位右数——表示左边m是定位,右边n是定数;
左位负倒——表示左位是负“-”时从后面数起;
右数负除——表示右位是负“-”时除掉后面的位数。
因此:
正时:左定位数,右定个数
负时:左边从后数起,右边去掉后位
寂寞是黑白的,但黑白不是寂寞,是永恒。BAT 需要的不是可能,而是智慧。

TOP

返回列表