【问题标题】:Execute function stored in a variable执行存储在变量中的函数
【发布时间】:2016-12-02 06:13:16
【问题描述】:

是否可以执行定义存储在 VBScript 变量中的函数? 例如:

Set fun = "Sub fun" & 
          " MsgBox 1" &
          "End Sub"

变量fun 具有函数定义,那么现在是否可以使用 eval 或其他方式以某种方式执行该函数?

【问题讨论】:

  • 如果您在帮助中查找eval,它将在底部告诉您相关功能。试试看。
  • 我认为是执行语句。
  • 使用Call ExecuteGlobal("sub fun()" & vbCrLf & "msgbox 1" & vbCrLf & "end sub")。这将动态创建过程fun(),但之后您仍需要调用它。
  • 请注意,这样做不是好的做法,通常是设计选择错误的标志。

标签: vbscript


【解决方案1】:

可以使用ExecuteGlobal()

Dim cmd : cmd = "Sub fun()" & vbCrLf & "MsgBox 1" & vbCrLf & "End Sub"
'Call ExecuteGlobal() to add the fun() procedure definition into the global scope.
Call ExecuteGlobal(cmd)
'Call the procedure now it's defined.
Call fun()

注意:根据使用的上下文,明智的做法是清理用于构建 ExecuteGlobal() 语句的任何输入,因为它可能会注入不需要的代码。

【讨论】:

    猜你喜欢
    • 2018-12-17
    • 1970-01-01
    • 1970-01-01
    • 2011-01-07
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 2015-03-26
    相关资源
    最近更新 更多