bat SET中替换字符串(用变量代表需替换的字符串)

@ECHOOFFSET"VAR=ab,dc,cc,ef,gg,AQ,gg"SET"VAR=%VAR:,=%"ECHO%VAR%SET"MAT=gg"ECHO%MAT%SE... @ECHO OFF SET "VAR=ab,dc,cc,ef,gg,AQ,gg" SET "VAR=%VAR:,= %" ECHO %VAR% SET "MAT=gg" ECHO %MAT% SET "VAR=%VAR:%%MAT%= %" REM 执行到这一句是有问题的
一般情况下 直接 SET "VAR=%VAR:gg= %" 这样就可以了

但是 我想要用MAT来代表gg的话 ,又该怎么写SET?
求解答 谢谢
最后一句是有问题的 不想%VAR:gg= % 要用变量的形式,怎么解决
展开
 我来答
albumin
推荐于2016-02-25 · TA获得超过1.2万个赞
知道大有可为答主
回答量:4889
采纳率:87%
帮助的人:2325万
展开全部
@ECHO OFF
SET "VAR=ab,dc,cc,ef,gg,AQ,gg"
SET "VAR=%VAR:,= %"
ECHO %VAR%
SET "MAT=gg"
ECHO %MAT%
call SET "VAR=%%VAR:%MAT%= %%"
ECHO %VAR%

call命令会对其参数进行扩展,然后再执行,gg会替换成一个空格

也可以启用变量延迟来实现@echo off&setlocal enabledelayedexpansion.........set "var=!var:%mat%=!

追问

FOR  循环中 有没有办法让 (!strTmp7!)  每次循环的时候,可以改变


比如(strTmp=aa  bb  cc  dd aa )

  第一次循环之后,取到aa   想把strTmp=bb cc dd  这样循环   不想取到重复的


或者执行所有的循环之后,把重复的结果去掉保存在str中

jd08139
2013-12-31 · TA获得超过3733个赞
知道大有可为答主
回答量:2174
采纳率:66%
帮助的人:2823万
展开全部
@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION
SET VAR=ab,dc,cc,ef,gg,AQ,gg 
SET VAR=%VAR:,= % 
ECHO %VAR% 
SET MAT=gg
ECHO %MAT% 
SET VAR=!VAR:%MAT%= ! 
ECHO %VAR%
pause

启用批处理中的延迟变量扩展就可以轻松处理了.

追问

FOR  循环中 有没有办法让 (!strTmp7!)  每次循环的时候,可以改变


比如(strTmp=aa  bb  cc  dd aa )

  第一次循环之后,取到aa   想把strTmp=bb cc dd  这样循环   不想取到重复的


或者执行所有的循环之后,把重复的结果去掉保存在str中

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式