0

私は次のことを達成しようとしています:

myFunc(sStr)値を返す関数があるとしましょう。

その関数を動的に呼び出したいのですが、これはvbScript関数eval()またはのビルドの1つを使用して実行できると信じていましたexecute()

Function myFunc(fString)
    myFunc = "some text in a string. " & fString
End Function

私はこれを次のようなもので呼びたいと思います:

sDoThis = "response.write myFunc(""blah blah. "")"
execute(sDoThis)

これは機能していないようです(たとえば、実行する文字列を渡す部分)。

実行される文字列は動的である必要があります。

これが可能かどうか/どのように可能か誰かが知っていますか?

4

2 に答える 2

5

GetRef()「関数ポインタ」の VBScript バリアントを取得するために使用する必要があります。

Option Explicit

Function appendString(sAppend)
  appendString = "constant head " & sAppend
End Function

Dim oFncPtr     : Set oFncPtr = GetRef("appendString")
Dim sFullString : sFullString = oFncPtr("and variable tail")

WScript.Echo sFullString

出力:

constant head and variable tail

これにより、Eval()/Execute の非効率性とセキュリティ リスクが回避されます。

于 2012-12-03T13:35:34.657 に答える
0

シャドウ ウィザードは正しいです。他にもいくつかの構文の問題がありました。それは機能します。助けてくれてありがとう。

于 2012-12-09T14:51:47.983 に答える