Получить все значения переменных в vbscript с помощью элемента управления msscript
Есть ли способ получить все значения переменных в скрипте во время выполнения.
Рассмотрим следующий код VBScript.
var1= 5
Var2= 6
For i=0 To 5
Msgbox i
Next
Как я могу реализовать это с помощью элемента управления msscript, чтобы я мог получить все переменные во время выполнения?
Я ищу, чтобы реализовать отладчик для VBScript, я могу иметь список всех переменных во время выполнения, как показано ниже.
var1=5
Var2=6
i=5
Любая помощь по этому вопросу будет высоко ценится.
Заранее спасибо!
1 ответ
Решение
Вот ты где! Сохраните приведенный ниже код как файл VBScript:
' VBS code variables to be fetched from
sVBScriptDebug = _
"var1= 5" & vbCrLf & _
"Var2= 6" & vbCrLf & _
vbCrLf & _
"For i=0 To 5" & vbCrLf & _
" Msgbox i" & vbCrLf & _
"Next"
' ScriptControl to be used for debug purposes
Set oScrCtlDebug = CreateObject("MSScriptControl.ScriptControl")
oScrCtlDebug.Language = "VBScript"
oScrCtlDebug.AddCode sVBScriptDebug
' Me object from debug script
Set oMeDebug = oScrCtlDebug.Eval("Me")
' ScriptControl for JScript utility function pushing all object's properties to array
Set oScrCtlUtil = CreateObject("MSScriptControl.ScriptControl")
oScrCtlUtil.Language = "JavaScript"
oScrCtlUtil.Eval("Enum=function(x){this.x=new Array();for (var i in x) {this.x[i]=i};return this.x}")
' Retrieve JScript this object
Set oJSGlobal = oScrCtlUtil.Eval("this")
' Cycle through all debug script Me object properties, that actually are fetched global scope variables
sRes = ""
For Each sVar In oJSGlobal.Enum(oMeDebug)
sRes = sRes & sVar & "=" & oScrCtlDebug.Eval(sVar) & vbCrLf
Next
MsgBox sRes