中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-12 00:52
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请教一个在延迟环境变量下的字符替换问题 查看 856 回复 2
楼 主 请教一个在延迟环境变量下的字符替换问题 发表于 2010-08-15 11:18 ·  中国 广东 深圳 电信
新手上路
积分 5
发帖 4
注册 2008-05-14 10:59
18年会员
UID 118636
性别 男
状态 离线
最近写了一个在延迟环境变量下的字符替换的脚步,如下:
@echo off
setlocal enabledelayedexpansion
set /p str=字符串:
set /p old=请输入old:
set /p new=请输入new:
set str=!str:!old!=!new!!
echo !str!
pause
得到的结果却是oldnew,而不是我想要的替换字符的结果,如果把old和new两边的百分号改为感叹号,就可以,为什么?不是说延迟环境变量下,变量得用感叹号括起来的?而且输出的结果,也令人费解。
2 发表于 2010-08-15 13:11 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
变量嵌套不是这样用的,参考:
http://bbs.bathome.net/thread-2899-1-1.html
3 发表于 2010-08-15 15:21 ·  中国 广东 深圳 电信
新手上路
积分 5
发帖 4
注册 2008-05-14 10:59
18年会员
UID 118636
性别 男
状态 离线
看了参考资料,有点明白了,版主可否讲解下变量嵌套的用法,使用变量嵌套的时候,需要注意点什么,谢谢了
论坛跳转: