中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-19 05:50
47,814 主题排行 / 349,908 发帖 / 今日 1 篇 / 48,259 会员排行
DOS疑难解答 & 问题讨论 (解答室) » 如何用变量的值替换另一个变量的值??
可打印版本  696 / 8
第1楼 unixShell 发表于 2008-03-05 10:40
初级用户 发帖 8 积分 22
如何用变量的值替换另一个变量的值??
Code:



目的是要用%test%替换%text%中#test#部分, 但发现扩展变量中遇到第一个%就返回了, 不知道如何实现,谢谢.
第2楼 pooronce 发表于 2008-03-05 10:52
中级用户 发帖 250 积分 484
好像是不能嵌套使用造成的,但可以变通点,这样:
第3楼 unixShell 发表于 2008-03-05 11:01
初级用户 发帖 8 积分 22
Originally posted by pooronce at 2008-3-5 10:52 AM:
好像是不能嵌套使用造成的,但可以变通点,这样:


Hi, 我也曾试过用延迟,出来的结果是:
1234567890!test!1234567890
第4楼 pooronce 发表于 2008-03-05 11:42
中级用户 发帖 250 积分 484
你自己确认一下,哪里打错了啥的:

F:\pe>test

F:\pe>setlocal enabledelayedexpansion

F:\pe>set text=1234567890#test#1234567890

F:\pe>set test=testing

F:\pe>echo 1234567890!test!1234567890
1234567890testing1234567890
第5楼 unixShell 发表于 2008-03-05 12:31
初级用户 发帖 8 积分 22
Originally posted by pooronce at 2008-3-5 11:42 AM:
你自己确认一下,哪里打错了啥的:

F:\pe>test

F:\pe>setlocal enabledelayedexpansion

F:\pe>set text=1234567890#test#1234567890

F:\pe>set test=testing

F: ...


老兄,你那是直接echo吧, 要这样呢?
第6楼 s11ss 发表于 2008-03-05 12:33
银牌会员 发帖 566 积分 2,098
第7楼 pooronce 发表于 2008-03-05 15:12
中级用户 发帖 250 积分 484
Originally posted by unixShell at 2008-3-5 12:31 PM:


老兄,你那是直接echo吧, 要这样呢?


问题不就已经结了,能echo了都
我知道你的疑问,你是想直接用而不是echo,那就再传递一次不就把%和!都剥光了啊
第8楼 unixShell 发表于 2008-03-05 15:18
初级用户 发帖 8 积分 22
Originally posted by pooronce at 2008-3-5 03:12 PM:


问题不就已经结了,能echo了都
我知道你的疑问,你是想直接用而不是echo,那就再传递一次不就把%和!都剥光了啊


我是没能试成功,
执行: echo %text:#test#=!test!%
显示: 1234567890!test!1234567890
第9楼 pooronce 发表于 2008-03-06 14:11
中级用户 发帖 250 积分 484
谁叫你这样echo的,这样里面的变量才经过一次处理啊,当然!还在了
你可以再用个变量传递一次啊,没懂吗? 就是再把值赋给另外一个变量,然后再引用最后这个变量名用啊
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023