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根本不起作用,输出的是指令的字符串形式。
展开
 我来答
12d1a2235w652d
2015-03-05 · TA获得超过385个赞
知道小有建树答主
回答量:391
采纳率:80%
帮助的人:323万
展开全部

要先开启变量延迟,就是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

开启了变量延迟后,百分号要变成感叹号,但是当变量名中有变量时,表示变量名的变量还是要用百分号。

百度网友e591bcd
2017-08-20 · TA获得超过988个赞
知道小有建树答主
回答量:518
采纳率:0%
帮助的人:400万
展开全部

刚好遇到这个问题,顺道帮你解决一下。

@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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式