bat SET中替换字符串(用变量代表源字符串、需替换的子字符串、目标字符串)
@echooffsetstr0=D:\test\a\test.txtsetstr1=D:\test\asetstr2=D:\test\bsetresult=%str0%:...
@echo off
set str0=D:\test\a\test.txt
set str1=D:\test\a
set str2=D:\test\b
set result=%str0%:%str1%=%str2%
@echo %result%
pause
输出结果:
D:\test\a\test.txt:D:\test\a=D:\test\b
这种替换怎么写啊?上面的set根本不起作用,输出的是指令的字符串形式。 展开
set str0=D:\test\a\test.txt
set str1=D:\test\a
set str2=D:\test\b
set result=%str0%:%str1%=%str2%
@echo %result%
pause
输出结果:
D:\test\a\test.txt:D:\test\a=D:\test\b
这种替换怎么写啊?上面的set根本不起作用,输出的是指令的字符串形式。 展开
2个回答
展开全部
要先开启变量延迟,就是setlocal enabledelayedexpansion
@echo off
setlocal enabledelayedexpansion
set str0=D:\test\a\test.txt
set str1=D:\test\a
set str2=D:\test\b
set result=!str0:%str1%=%str2%!
echo !result!
pause
开启了变量延迟后,百分号要变成感叹号,但是当变量名中有变量时,表示变量名的变量还是要用百分号。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询