中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【擂台大挑战】替换*=为指定字符的bat代码
« [1] [2] [3] »
作者:
标题: 【擂台大挑战】替换*=为指定字符的bat代码 上一主题 | 下一主题
523066680
银牌会员

SuperCleaner


积分 2362
发帖 1133
注册 2008-2-2
状态 离线
『第 31 楼』:  

偶那个思路是想用%str:**=% 把第一个出现星号根后面的字符串断开~
然后想在这中间做手脚的~。
或者:想办法获得星号的位置,断开并补成“星”符号,是连续的,则连续替换。然后开始下一段~  

结果写着写着代码就长了呜呜。

[ Last edited by 523066680 on 2009-10-14 at 10:38 ]



综合型编程论坛

我的作品索引
  
2009-10-14 09:59
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (523066680)  编辑帖子  回复  引用回复
q8249014
初级用户





积分 175
发帖 45
注册 2007-8-4
状态 离线
『第 32 楼』:  

单纯使用set进行替换基本不可能实现,即使加上转义也是如此
@echo off
set "test=^*test"
set test=%test:^*=星星%
echo.%test%
pause
因为在预处理阶段 变量扩展时 “^” 还没有起到他的作用已经被替换啦

即使是用变量延迟 那么 “^” 和 “!” 同时被处理,但是以从左向右的原则

“^”  任然不起作用

除非微软在来个什么延迟 呵呵

2009-10-14 17:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] [3] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: