Board logo

标题: 请大家看看这个批处理错在哪里 [打印本页]

作者: willsion     时间: 2007-3-13 00:26    标题: 请大家看看这个批处理错在哪里
下面的批处理是先将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

作者: zh159     时间: 2007-3-13 00:45
开始少了两个百分号

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

Last edited by zh159 on 2007-3-12 at 03:54 PM ]

作者: willsion     时间: 2007-3-13 02:21
2楼朋友提出的方法仍然不行。

结果仍然是“Value2变量值 data_value1.
不是期望的123456。

作者: lxmxn     时间: 2007-3-13 02:32
@echo off
setlocal enabledelayedexpansion
set temp1=data
set data_value1=123456
set value2=%temp1%_value1

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

pause

作者: nzisisco     时间: 2007-3-13 02:34
楼上正解 应该用变量延迟

作者: willsion     时间: 2007-3-13 03:33
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大侠厉害!
原来又是变量延迟惹的祸。

谢谢各位朋友!

作者: zh159     时间: 2007-3-13 04:53
二楼我少了两个百分号,改为:
call echo Value2变量值 %%%value2%%%