中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 02:09
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 变量内容的取得问题 查看 798 回复 7
楼 主 变量内容的取得问题 发表于 2007-06-27 07:59 ·  日本
初级用户
积分 30
发帖 11
注册 2007-06-11 16:13
19年会员
UID 90977
性别 男
状态 离线
想用拼接的方式实现数组,
虽然内容存储进去了,但是不能动态的取得,必须指定取出。
如何实现动态取出?


@echo off

set i=1

set test_%i%=abcd

set i=2

set test_%i%=1234



set i=1

echo %test_%i%%

set i=2

echo %test_2%

pause


现在的输出结果:
i%
1234

期望的结果:
abcd
1234

[ Last edited by easyboylia on 2007-6-27 at 08:49 AM ]
2 发表于 2007-06-27 08:36 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
set i=1

echo %test_i%
改为
set i=1

echo %test_1%


但是这句
set i=1

echo %test_i%
的结果应该是:
ECHO 处于关闭状态
1234
3 发表于 2007-06-27 08:50 ·  日本
初级用户
积分 30
发帖 11
注册 2007-06-11 16:13
19年会员
UID 90977
性别 男
状态 离线
不好意思,代码有问题,已经修正了。

其实主要是为了实现数组功能。
4 发表于 2007-06-27 09:01 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
改成这样
set i=1

call echo %%test_%i%%%
5 发表于 2007-06-27 10:01 ·  日本
初级用户
积分 30
发帖 11
注册 2007-06-11 16:13
19年会员
UID 90977
性别 男
状态 离线
可以了,谢谢!!
不过还有个小问题,如果用在if语句中应该怎么写?
本人初学,还请多多关照。


if call %%test_%i%%% == abcd echo OK
6 发表于 2007-06-27 10:06 ·  中国 天津 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
我现在能想到就是启用延迟,!test_%i%!
看看能行不?

自己再摸索一下吧。
7 发表于 2007-06-27 11:06 ·  中国 上海 联通
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
willsort斑竹有篇讲解变量嵌套的文章,建议楼主看看。
http://www.cn-dos.net/forum/viewthread.php?tid=15669
8 发表于 2007-06-27 12:06 ·  日本
初级用户
积分 30
发帖 11
注册 2007-06-11 16:13
19年会员
UID 90977
性别 男
状态 离线
谢谢知道,先去看看。
论坛跳转: