Метод выполнения VBScript не объявляет переменные - PullRequest
3 голосов
/ 19 августа 2011

Я искал динамические методы include и пришел к решению, которое использует функцию Execute VBScript.Это прекрасно работает для меня, но я заметил, что Execute выполняет код, но этот код не может объявить что-либо вроде переменной или функции:

Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
If objFSO.FileExists(Server.MapPath(strFile)) Then
  Set objFile = objFSO.OpenTextFile(Server.MapPath(strFile), 1)
  strSource = objFile.ReadAll

  // Filter out comment- and ASP tags cos they return errors
  strSource = Replace(strSource, Chr(60)&Chr(37), "")
  strSource = Replace(strSource, Chr(37)&Chr(62), "")
  objRegExp.Pattern = "^[ \t]*(//¦\')[\s\S]*?$"
  strSource = objRegExp.Replace(strSource, "")

  // Execute the code
  On Error Resume Next
  Execute strSource 'etc........
end if

Почему?Спасибо!

1 Ответ

2 голосов
/ 20 августа 2011

Возможно, вы хотите использовать ExecuteGlobal. Я полагаю, что ваш динамический включающий загрузчик файлов находится в подпрограмме, поэтому, когда вы используете Execute, новые переменные попадают в эту подпрограмму. ExecuteGlobal обеспечит глобальную доступность новых переменных.

...