Vix*_*xed 6 vbscript asp-classic
有没有办法检查子或函数是否存在?
sub mySub()
'some code
end sub
Run Code Online (Sandbox Code Playgroud)
就像是 if exist(mySub)
所以我知道有一个更好的方法来做这个并且它正在使用 GetRef()
Function Exist(procName)
On Error Resume Next
Dim proc: Set proc = GetRef(procName)
Exist = (Not proc Is Nothing)
End Function
Function Hello()
WScript.Echo "Hello Ran"
End Function
If Exist("test") Then 'Returns False (0)
WScript.Echo "Test Exists"
Else
WScript.Echo "Test Doesn't Exist"
End If
If Exist("Hello") Then 'Returns True (-1)
WScript.Echo "Hello Exists"
Else
WScript.Echo "Hello Doesn't Exist"
End If
Run Code Online (Sandbox Code Playgroud)
产量
Test Doesn't Exist Hello Exists
VBScript没有内置任何东西可以做到这一点,但你可以使用On Error Resume Next和构建一些东西ExecuteGlobal().
Function Exist(procName)
On Error Resume Next
ExecuteGlobal "Call " & procName & "()"
Exists = (Err.Number = 0)
End Function
Function Hello()
WScript.Echo "Hello Ran"
End Function
If Exist("test") Then 'Returns False (0)
WScript.Echo "Test Exists"
Else
WScript.Echo "Test Doesn't Exist"
End If
If Exist("hello") Then 'Returns True (-1)
WScript.Echo "Test Exists"
Else
WScript.Echo "Test Doesn't Exist"
End If
Run Code Online (Sandbox Code Playgroud)
产量
Test Doesn't Exist Hello Ran Test Doesn't Exist
使用这种方法的缺点是,如果它存在,它实际上运行该过程.