中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-23 18:03
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 【擂台大挑战】替换*=为指定字符的bat代码 查看 3,889 回复 31
31 发表于 2009-10-14 09:59 ·  中国 广东 广州 电信
银牌会员
★★★★
SuperCleaner
积分 2,362
发帖 1,133
注册 2008-02-02 21:36
18年会员
UID 110072
性别 男
状态 离线
偶那个思路是想用%str:**=% 把第一个出现星号根后面的字符串断开~
然后想在这中间做手脚的~。
或者:想办法获得星号的位置,断开并补成“星”符号,是连续的,则连续替换。然后开始下一段~

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

[ Last edited by 523066680 on 2009-10-14 at 10:38 ]
32 发表于 2009-10-14 17:41 ·  中国 湖北 襄阳 老河口市 电信
初级用户
积分 175
发帖 45
注册 2007-08-04 16:16
18年会员
UID 94640
性别 男
状态 离线
单纯使用set进行替换基本不可能实现,即使加上转义也是如此


@echo off
set "test=^*test"
set test=%test:^*=星星%
echo.%test%
pause


因为在预处理阶段 变量扩展时 “^” 还没有起到他的作用已经被替换啦

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

“^” 任然不起作用

除非微软在来个什么延迟 呵呵
论坛跳转: