批处理 字符串处理

非 Y 不嫁゛ 提交于 2019-11-28 15:09:58

原文引用 大专栏  https://www.dazhuanlan.com/2019/08/26/5d635377646d2/

字符串替换

语法格式

将字符串变量%StrName%中的str1全部替换为str2.

1
%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"请按任意键继续. . .

字符串截取

正序截取 从左向右截取

1
%StrName:~[m[,n]]%
  • 方括号表示可选项
  • %为变量标识符,
  • 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请按任意键继续. . .

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!