![]() |
中国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 这里实际是对命令行进行重新组织扩展,先扩展%%b%a%%%里面的%a%,使%a%变成a的值1,再用cal来扩展%b1%。 也可以用变量延迟来实现,方法如下: call 在这里的用法实际是变量延迟的一种快捷方式,变量延迟一般用在for的循环体里面。 call,%%b%a%%% 这里的逗号实际是一个分隔符,和空格一样,还有很多分隔符可用,比如上例中的 echo:!b%a%! ,当然并不是所有的命令都可以这样用,看情况而定…… C:\>echo+cn-dos.net |
|
| 第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: 加了空格,变量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 |