字符串替换
语法格式
将字符串变量%StrName%
中的str1
全部替换为str2
.
实例
1 2 3 4 5 6
| @echo off set StrName=www_google_com echo 替换前的值:"%StrName%" set Var=%StrName:_=.% echo 替换后的值:"%Var%" pause
|
运行结果:
1 2 3 4 5 6
| @echo off set StrName=www_google_com echo 替换前的值:"%StrName%" set Var=%StrName:_=.% echo 替换后的值:"%Var%" pause
|
实例2
1 2 3 4 5 6
| @echo off set StrName=www_google_com_hk echo 替换前的值:"%StrName%" set Var=%StrName:_=被墙了% echo 替换后的值:"%Var%" pause
|
运行结果:
1 2 3 4
| G:\Desktop\书籍\批处理\bat>字符串替换2.bat 替换前的值:"www_google_com_hk" 替换后的值:"www被墙了google被墙了com被墙了hk" 请按任意键继续. . .
|
字符串截取
正序截取 从左向右截取
- 方括号表示可选项
%
为变量标识符,
StrName
为变量名,不可省略
- 冒号
:
用于分隔变量名和说明部分
~
可以简单理解为偏移
m
为偏移量,缺省为0
偏移量
n
为截取长度,缺省为截取到最后.
实例
1 2 3 4 5 6
| @echo off set a=www.google.com :: 截取出google set var=%a:~4,6% echo %var% pause
|
运行结果:
1 2 3
| G:\Desktop\书籍\批处理\bat>字符串截取.bat google 请按任意键继续. . .
|
分析
如果用数字1
表示第一个字符w
,则%a:~4,6%
表示从第4
个字符(不包括该字符)开始,往后截取6个字符,也就是从.
这个字符开始往后截取6
字符,得到google
.用数学中的区间可以很好的理解,截取的区间为:(4,4+6]
逆序截取
1 2 3 4 5 6
| @echo off set a=www.google.com ::倒数截取三位 set var=%a:~-3% echo %var% pause
|
运行结果
1 2 3
| G:\Desktop\书籍\批处理\bat>字符串逆序截取.bat com 请按任意键继续. . .
|