中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-06 19:50
47,812 主题排行 / 349,914 发帖 / 今日 0 篇 / 48,268 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]一个变量嵌套变量的问题
可打印版本  2,738 / 10
第1楼 hongewuyan 发表于 2008-06-23 17:02
初级用户 发帖 29 积分 65
[已结]一个变量嵌套变量的问题
请教一个问题,有一个功能一直不知道如何实现.

举例如下:

先设置下面两个变量:

set a=1

set b1=10

然后执行 echo %b%a%% 得到 %b1%

其实我想得到的是 赋予b1的值,即 10

请问大家能否实现呢?

[ Last edited by HAT on 2008-12-23 at 10:10 ]
第2楼 bat-zw 发表于 2008-06-23 17:15
金牌会员 发帖 1,276 积分 3,105
第3楼 hongewuyan 发表于 2008-06-23 17:33
初级用户 发帖 29 积分 65
果然可以实现
谢谢楼上的高手.

不过还是有些疑问

call,echo %%b%a%%%

这行可以解释下么? call, 做何解?
我直接 echo %%b%a%%% 就不可以,加上就可以了...
call不是调用其他批处理或标签的么...而且后面那个逗号也不懂 - -
第4楼 lxmxn 发表于 2008-06-23 22:07
版主 发帖 4,938 积分 11,386
Originally posted by hongewuyan at 2008-6-23 17:33:
果然可以实现
谢谢楼上的高手.

不过还是有些疑问

call,echo %%b%a%%%

这行可以解释下么? call, 做何解?
我直接 echo %%b%a%%% 就不可以,加上就可以了. ...

call 这里实际是对命令行进行重新组织扩展,先扩展%%b%a%%%里面的%a%,使%a%变成a的值1,再用cal来扩展%b1%。

也可以用变量延迟来实现,方法如下:


call 在这里的用法实际是变量延迟的一种快捷方式,变量延迟一般用在for的循环体里面。

call,%%b%a%%% 这里的逗号实际是一个分隔符,和空格一样,还有很多分隔符可用,比如上例中的 echo:!b%a%! ,当然并不是所有的命令都可以这样用,看情况而定……
C:\>echo+cn-dos.net
cn-dos.net

C:\>echo/cn-dos.net
cn-dos.net

C:\>echo






第5楼 pusofalse 发表于 2008-06-23 22:17
银牌会员 发帖 646 积分 1,604
我的理解是,如果变量之中仍有变量,就要用到变量延迟 call 延迟 或setlocal 开启延迟 不知这样理解对否。。。
第6楼 hongewuyan 发表于 2008-06-24 11:24
初级用户 发帖 29 积分 65
谢谢大家的帮助,这次真的明白了。。。
第7楼 mysuntjy 发表于 2008-12-23 07:13
新手上路 发帖 10 积分 13 来自 重庆市
Originally posted by bat-zw at 2008-6-23 17:15:

为什么将连接两个set语句的&两边加个空格,即:set a=1 & set b1=10,运行结果为:ECHO 处于关闭状态.

????
第8楼 lxmxn 发表于 2008-12-23 09:48
版主 发帖 4,938 积分 11,386
Originally posted by mysuntjy at 2008-12-23 07:13:

为什么将连接两个set语句的&两边加个空格,即:set a=1 & set b1=10,运行结果为:ECHO 处于关闭状态.

????

加了空格,变量a的值就是1加上一个空格了,而不是原来单独的一个1。
第9楼 95167958 发表于 2008-12-23 12:23
新手上路 发帖 1 积分 1
call,echo %%b%a%%%语句中为什么不是call,echo %b%a%%,而要多出两个%呢,请指教
第10楼 HAT 发表于 2008-12-23 13:14
版主 发帖 5,017 积分 9,023
Re 9楼
第11楼 gool123456 发表于 2010-05-27 17:28
初级用户 发帖 76 积分 89
哈哈,恍然大悟。
好帖不能沉,顶上让多点人看到!
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023