dos批处理下变量内容替换的问题

setb=%a:*=y%(想将变量a中的*替换为y,结果不成功,请问应该怎样替换*,谢谢)... set b=%a:*=y%
(想将变量a中的*替换为y,结果不成功,请问应该怎样替换*,谢谢)
展开
 我来答
yyykkkyyyy
2011-09-25 · TA获得超过3136个赞
知道大有可为答主
回答量:2691
采纳率:40%
帮助的人:3269万
展开全部
如果能确定那变量a里含有、且仅含一个 “* ”,且不会在第一的位置,那这种 for /f 方法就是正确的,不然麻烦哦,主要是如有连续*不好处理
我写的这个还得假定变量a里再无别的特殊符:
@echo off&setlocal enabledelayedexpansion
set a=abc*d*ef*
set s=y
set aa=%a%
:r
if "!aa:~%n%,1!"=="*" (set/a m=n+1
set b=!b!!aa:~,%n%!%s%
call set aa=%%aa:~!m!%%
set n=0)else set/a n+=1
if defined aa goto r
echo b=%b%
pause
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sudoku52
2011-09-25 · TA获得超过7万个赞
知道大有可为答主
回答量:1.2万
采纳率:82%
帮助的人:4785万
展开全部
二楼方法正确,但有点粗心没看清题目,建议采纳二楼。
@echo off
set "x=abc*def"
for /f "tokens=1-2delims=*" %%i in ("%x%") do set "x=%%iy%%j"
echo %x%
pause
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JooKin
2011-09-25 · TA获得超过687个赞
知道小有建树答主
回答量:304
采纳率:0%
帮助的人:378万
展开全部
可借助for /f实现替换:
@echo off
set "x=abc*def"
for /f "tokens=1-2delims=*" %%i in ("%x%") do set "x=%%ix%%j"
echo %x%
pause
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
乱世t逃犯
2011-09-25 · TA获得超过2780个赞
知道小有建树答主
回答量:1016
采纳率:75%
帮助的人:428万
展开全部
没测试
估计是在*符号前面加上转义符号^
或者用引号框住
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式