每日命令与练习题21:变量截取
下面所讲的命令,请大家先查看帮助再看
有些命令要结合其他命令才显示出应用效果,会略提示一下
如有错误,或解释不全请给予指正!
变量截取 ,将变量中的字符截取
基本形式:%变量名:~偏移量[,长度]%
偏移量和长度都是数值,可以是正数,负数或0
对于批处理来说:
偏移量:是指从字符串开始截取的位置的偏移
长度:指需要截取的字符串长度
如:一个字符串"123456",我要截取"3"出来
步骤:从第3个字符开始截取1个字符出来
偏移量就是3-1=2
有些命令要结合其他命令才显示出应用效果,会略提示一下
如有错误,或解释不全请给予指正!
变量截取 ,将变量中的字符截取
基本形式:%变量名:~偏移量[,长度]%
偏移量和长度都是数值,可以是正数,负数或0
对于批处理来说:
偏移量:是指从字符串开始截取的位置的偏移
长度:指需要截取的字符串长度
如:一个字符串"123456",我要截取"3"出来
步骤:从第3个字符开始截取1个字符出来
偏移量就是3-1=2
长度是1
写成批就是:
写成批就是:
@echo off
set a=123456
echo %a:~2,1%
pause
set a=123456
echo %a:~2,1%
pause
下面以长度为1(只截取一个字符),来说明偏移量变化后的字符串
为了更直观我就不用循环了:
为了更直观我就不用循环了:
@echo off
set a=123456
rem 偏移量为0
rem 偏移量为0时,我们可以简写%a:~,1%
echo %a:~0,1%
rem 偏移量为1
set a=123456
rem 偏移量为0
rem 偏移量为0时,我们可以简写%a:~,1%
echo %a:~0,1%
rem 偏移量为1
echo %a:~1,1%
rem 偏移量为2
echo %a:~2,1%
rem 偏移量为3
echo %a:~3,1%
rem 偏移量为4
echo %a:~4,1%
rem 偏移量为5
echo %a:~5,1%
pause
rem 偏移量为2
echo %a:~2,1%
rem 偏移量为3
echo %a:~3,1%
rem 偏移量为4
echo %a:~4,1%
rem 偏移量为5
echo %a:~5,1%
pause
当偏移量为负数时,要使用字符串长度进行运算得到正数的偏移量
字符串长度:字符串的总长度
正数偏移量=字符串长度+负偏移量
当偏移量为-1字符串长度截取时:
字符串长度:字符串的总长度
正数偏移量=字符串长度+负偏移量
当偏移量为-1字符串长度截取时:
@echo off
set a=123456
rem 正数偏移量=6+(-1)=5
rem 相当于%a:~5,1%
echo %a:~-1,1%
pause
set a=123456
rem 正数偏移量=6+(-1)=5
rem 相当于%a:~5,1%
echo %a:~-1,1%
pause
当长度为负数时,要使用字符串相对长度进行运算得到正数的长度
字符串相对长度=字符串总长度-正数偏移量
正数长度=字符串相对长度+负正数长度
所以我们将上面合起来就是:
正数长度=字符串总长度-正数偏移量+负正数长度
当长度为-1时:
字符串相对长度=字符串总长度-正数偏移量
正数长度=字符串相对长度+负正数长度
所以我们将上面合起来就是:
正数长度=字符串总长度-正数偏移量+负正数长度
当长度为-1时:
@echo off
set a=123456
set a=123456
rem 正偏=6+(-1)=5
rem 正长度=6-5+(-1)=0
rem 长度为0,没有截取任何字符
echo %a:~-1,-1%
pause
rem 正长度=6-5+(-1)=0
rem 长度为0,没有截取任何字符
echo %a:~-1,-1%
pause
长度是可选的,可以省略
当长度省略时,默认是:
长度=字符总长度-正数偏移量
又来一个直观的:
当长度省略时,默认是:
长度=字符总长度-正数偏移量
又来一个直观的:
@echo off
set a=123456
rem 长度=6-1=5
rem 相当于%a:~1,5%
echo %a:~1%
set a=123456
rem 长度=6-1=5
rem 相当于%a:~1,5%
echo %a:~1%
rem 长度=6-2=4
rem 相当于%a:~2,4%
echo %a:~2%
rem 长度=6-3=3
rem 相当于%a:~3,3%
echo %a:~3%
rem 长度=6-4=2
rem 相当于%a:~4,2%
echo %a:~4%
rem 长度=6-5=1
rem 相当于%a:~5,1%
echo %a:~5%
pause
rem 相当于%a:~2,4%
echo %a:~2%
rem 长度=6-3=3
rem 相当于%a:~3,3%
echo %a:~3%
rem 长度=6-4=2
rem 相当于%a:~4,2%
echo %a:~4%
rem 长度=6-5=1
rem 相当于%a:~5,1%
echo %a:~5%
pause
可以说变量截取就是一个计算过程,先求正偏移再求正长度
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论