VBScript执行不适用于变量,但适用于字符串

时间:2014-10-06 13:43:02

标签: vbscript eval execute

我已经有了使用Eval和Execute根据字符串构建变量的代码。 但无论出于何种原因,当我尝试将变量设置为变量时,Execute会将变量保留为空。但如果我手动将其设置为字符串

,则可以正常工作

这不起作用,给出一个空盒子:

For j = 0 To 2
    name = "alias_" & j
    val = "test"
    Execute(Eval("name") + "=" + val)
    msgbox(Execute(Eval("name"))
Next

这项工作,显示"测试"在msgbox中:

For j = 0 To 2
    name = "alias_" & j
    Execute(Eval("name") + "=" + "test")
    msgbox(Execute(Eval("name"))
Next

所以Execute似乎并不喜欢这里的变量。什么甚至更奇怪,在我的VBSEdit调试器中,我可以看到本地人,并且它创建了一个名为" test"而不是将值设置为alias_j变量。现在让我很困惑。

1 个答案:

答案 0 :(得分:2)

您是否尝试创建名为alias_0alias_2的变量并为每个变量赋值?如果是这样,这应该工作。它将值test0分配给alias_0test1分配给alias_1等等:

For j = 0 To 2
    name = "alias_" & j
    val = "test" & j
    Execute name & " = val"
    MsgBox Eval("alias_" & j)
Next