【替换语法格式】
%VAR:str1=str2%
或者
!VAR:str1=str2!
【语法功能】
示例
- :: 本示例包含汉字,如执行乱码,请使用 Notepad++ 把本文档转化成ANSI编码 【标注一】
- ::demo.bat
- @echo off
- set a="bbs. yangke .cn"
- echo 替换前的值: "%a%"
-
- :: %a%存在空格(" "),把" "替换为空
- set var1=%a: =%
-
- echo 替换后的值: "%var1%"
-
- :: 替换发生后,a的值不会改变
- echo a的值: "%a%"
-
- echo ------------------------------------
-
- set "a=abcde"
- echo 替换前的值: "%a%"
- :: %a%不存在 x ,则 %a% 把返回
- set var2=%a:x=y%
-
- echo 替换后的值: "%var2%"
-
- :: 替换发生后,a的值不会改变
- echo a的值: "%a%"
【标注一】 下载Notepad++
运行
- C:\>demo
- 替换前的值: "bbs. yangke .cn"
- 替换后的值: "bbs.yangke.cn"
- a的值: "bbs. yangke .cn"
- 替换后的值: "abcde"
- a的值: "abcde"
-
- C:\>demo
- 替换前的值: ""bbs. yangke .cn""
- 替换后的值: ""bbs.yangke.cn""
- a的值: ""bbs. yangke .cn""
- ------------------------------------
- 替换前的值: "abcde"
- 替换后的值: "abcde"
- a的值: "abcde"
-
- C:\>
str1 和 str2可以是变量扩展
示例
- :: 本示例包含汉字,如执行乱码,请使用 Notepad++ 把本文档转化成ANSI编码 【标注一】
- ::demo.bat
- @echo off
- setlocal enableDelayedExpansion
- set "a=abcde"
- echo 替换前的值: "%a%"
- set "rep=a"
- :: !a!存在 %rep% ,则把 %rep% 替换为 y
- echo 替换后的返回值:!a:%rep%=y!
运行
- C:\>demo
- 替换前的值: "abcde"
- 替换后的返回值:ybcde
- C:\>
字符串的替换功能在引用变量的地方均可以,并不一定必须要有set命令
示例
- :: 本示例包含汉字,如执行乱码,请使用 Notepad++ 把本文档转化成ANSI编码 【标注一】
- ::demo.bat
- @echo off
- set "a=abcde"
- echo 替换前的值: "%a%"
-
- :: %a%存在 a ,则把 a 替换为 y
- echo 替换后的返回值:%a:a=y%
运行
- C:\>demo
- 替换前的值: "abcde"
- ybcde
- C:\>demo
- 替换前的值: "abcde"
- 替换后的返回值:ybcde
- C:\>
!VAR:str1=str2!
在变量延时展开中,使用字符串的替换功能
示例
- :: 本示例包含汉字,如执行乱码,请使用 Notepad++ 把本文档转化成ANSI编码 【标注一】
- ::demo.bat
- @echo off
- setlocal enableDelayedExpansion
- set "a=abcde"
- echo 替换前的值: "%a%"
-
- :: 在 a 变量延时展开中,使用字符串的替换功能
- echo 替换后的返回值:!a:a=y!
运行
- C:\>demo
- 替换前的值: "abcde"
- 替换后的返回值:ybcde
- C:\>demo
- 替换前的值: "abcde"
- 替换后的返回值:ybcde
- C:\>
写作不易,如果本文帮到您,请您 “在下面一圈三连”。