bat命令入门与高级技巧详解

2019-01-29 22:08:30刘景俊

请注意:字符串的替换和截取功能在引用变量的地方均可以,并不一定必须要有set命令
例:
@echo off
set a=bbs.verybat.cn
echo 替换前的值: "%a%"
echo 替换后的值: "%a:.=伤脑筋%"
pause
此例在echo语句中就替换了字符串,效果一样。

2、字符串截取
**********************************************
截取功能统一语法格式为:%a:~[m[,n]]%
**********************************************
方括号表示可选,%为变量标识符,a为变量名,不可少,冒号用于分隔变量名和说明部分,符号~可以简单理解为“偏移”即可,m为偏移量(缺省为0),n为截取长度(缺省为全部)

%PATH:~10,5%这个什么意思,看例子:
截取功能例子1:

@echo off set a=bbs.verybat.cn set var=%a:~1,2% echo %var% pause

执行后,我们会发现只显示了"bs"两个字母,我们的变量%a%的值不是为bbs.verybat.cn吗?
怎么只显示了第2个字母和第3个字母"bs",分析一结果我们就可以很容易看出
%PATH:~10,5%就是显示变量PATH里从11位(偏移量10)开始的5个字符!
分析set var=%a:~1,2%
set是命令,var是变量值,a要进行字符操作的变量,"1"从变量"a"第几位开始显示,"2"表示显示几位。
合起来就是把变量a的值从第2位(偏移量1)开始,把2个字符赋予给变量var
这样应该明白了吧~
其他两种语法
%PATH:~-10%
%PATH:~0,-2%
他们也是显示指定变量指定几位的值的意思
%PATH:~-10% 看例子
截取功能例子2:

@echo off set a=bbs.verybat.cn set var=%a:~-3% echo %var% pause

运行结果:.cn
这个就是把变量a倒数3位的值给变量VAR
当然我们也可以改成这样
截取功能例子3:

@echo off set a=bbs.verybat.cn set var=%a:~3% echo %var% pause

运行显示:.verybat.cn
这个就是把变量a的从第3位开始后面全部的值给变量VAR
%PATH:~0,-2%例子
截取功能例子4:

@echo off set a=bbs.verybat.cn set var=%a:~0,-3% echo %var% pause

执行后,我们发现显示的是"bbs.verybat",少了".cn"
从结果分析,很容易分析出,这是把变量a的值从0位开始,
到倒数第三位之间的值全部赋予给var
如果改成这样
截取功能例子5:

@echo off set a=bbs.wuyou.com set var=%a:~2,-3% echo %var% pause

运行显示:s.wuyou.
那么他就是显示从第3位(偏移量2)开始减去倒数三位字符的值,并赋予给变量var
讲得好,例子就是说明问题,为便于记忆,龙卷风小节如下:
a=bbs.wuyou.com%a:~1,2% =“bs” 偏移量1,从第二位开始向右取2位

相关文章 大家在看