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