注册
登录
论坛
搜索
帮助
导航
私人消息 (0)
公共消息 (0)
论坛任务 (0)
系统消息 (0)
好友消息 (0)
帖子消息 (0)
批处理之家
»
BAT教程&资料
» 批处理命令set截取字符详解
[新手上路]
批处理新手入门导读
[视频教程]
批处理基础视频教程
[视频教程]
VBS基础视频教程
[批处理精品]
批处理版照片整理器
[批处理精品]
纯批处理备份&还原驱动
[批处理精品]
CMD命令50条不能说的秘密
[在线下载]
第三方命令行工具
[在线帮助]
VBScript / JScript 在线参考
返回列表
发帖
cjiabing
发短消息
加为好友
cjiabing
(甲兵时代)
当前离线
UID
7853
帖子
1726
精华
2
积分
4476
PB
4191
技术
95
捐助
0
阅读权限
254
在线时间
1303 小时
注册时间
2008-12-21
最后登录
2018-10-23
荣誉版主
帖子
1726
积分
4476
技术
95
捐助
0
注册时间
2008-12-21
1
楼
跳转到
»
发表于 2012-5-15 00:30
|
显示全部帖子
本帖最后由 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
返回列表
批处理专区: BAT CMD DOS
BAT求助&讨论
BAT教程&资料
BAT原创&转载
BAT新大陆
BAT转载代码
新手练功
出题挑战
有偿求助
第三方命令行
开源原创工具
iBAT
Take Command
其他脚本区
PowerShell求助&讨论
PowerShell教程&资料
PowerShell原创&转载
VBS求助&讨论
JS / JScript / JavaScript
VBS教程&资料
VBS原创&转载
UNIX/Linux Shell
Python
Perl
网络资源区
电脑技术研讨
精品软件交流
论坛事务区
站务交流
意见反馈
论坛公告
版主申请
交换链接
建站杂谈
活动专区
论坛总版规
[收藏此主题]
[关注此主题的新回复]
[通过 QQ、MSN 分享给朋友]