中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 15:18
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请大家看看这个批处理错在哪里 查看 738 回复 6
楼 主 请大家看看这个批处理错在哪里 发表于 2007-03-13 00:26 ·  中国 广东 深圳 宝安区 电信
高级用户
★★★
积分 793
发帖 312
注册 2004-09-02 00:00
21年会员
UID 31104
性别 男
状态 离线
下面的批处理是先将data_value1这个变量名称赋值给value2,然后通过引用
value2变量得出data_value1变量值(123456)。但实际上没有得到预期的结果。

请各位高手指教。
谢谢!

@echo off
set temp1=data
set data_value1=123456
set value2=%temp1%_value1

echo Value2变量名称为 %temp%_value1
echo Value2变量值 %%value2%%

pause
2 发表于 2007-03-13 00:45 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
开始少了两个百分号

call echo Value2变量值 %%%value2%%%

[ Last edited by zh159 on 2007-3-12 at 03:54 PM ]
3 发表于 2007-03-13 02:21 ·  中国 广东 深圳 宝安区 电信
高级用户
★★★
积分 793
发帖 312
注册 2004-09-02 00:00
21年会员
UID 31104
性别 男
状态 离线
2楼朋友提出的方法仍然不行。

结果仍然是“Value2变量值 data_value1.
不是期望的123456。
4 发表于 2007-03-13 02:32 ·  中国 湖北 武汉 电信
版主
★★★★★
积分 11,386
发帖 4,938
注册 2006-07-23 17:10
20年会员
UID 59080
状态 离线
@echo off
setlocal enabledelayedexpansion
set temp1=data
set data_value1=123456
set value2=%temp1%_value1

echo Value2变量名称为 %temp1%_value1
echo Value2变量值 !%value2%!

pause
5 发表于 2007-03-13 02:34 ·  新西兰
初级用户
积分 107
发帖 47
注册 2007-03-03 03:12
19年会员
UID 80618
性别 男
状态 离线
楼上正解 应该用变量延迟
6 发表于 2007-03-13 03:33 ·  中国 广东 深圳 宝安区 电信
高级用户
★★★
积分 793
发帖 312
注册 2004-09-02 00:00
21年会员
UID 31104
性别 男
状态 离线
Originally posted by lxmxn at 2007-3-13 02:32 AM:
@echo off
setlocal enabledelayedexpansion
set temp1=data
set data_value1=123456
set value2=%temp1%_value1

echo Value2变量名称为 %temp1%_value1
echo Value2变量 ...


还是lxmxn大侠厉害!
原来又是变量延迟惹的祸。

谢谢各位朋友!
7 发表于 2007-03-13 04:53 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
二楼我少了两个百分号,改为:
call echo Value2变量值 %%%value2%%%
论坛跳转: