如何从另一个vbscript文件(另一个.vbs文件)中获取变量

3

我有一个文件,其中包含以下变量。

Dim apple(10)
apple(0)= "banana"
apple(1)= "2 banana"
apple(2)= "3 banana"

这些变量在script/test/test.vbs中。

现在我有另一个文件,其中包含以下内容:

MSGBOX apple(0)
MSGBOX apple(1)

这些如何实现呢?相关代码在 script/main.vbs 文件中。

3个回答

4
对于 .HTA/.HTML/.WSF,不要试图重新发明轮子,而是使用 script 标签的 src 属性。
对于普通的 .VBS,请使用 ExecuteGlobal,如此处所示:here
Dim gsLibDir : gsLibDir = "M:\lib\kurs0705\"
Dim goFS     : Set goFS = CreateObject( "Scripting.FileSystemObject" )
ExecuteGlobal goFS.OpenTextFile( gsLibDir & "BaseLib.vbs" ).ReadAll()

无论哪种情况,都将要重复使用的代码放入所包含的文件中;不要浪费精力在提供与一行代码无异的花哨的 Include 子程序/函数上。

1
Yes,这是可能的。需要额外进行一点工作才能包括外部文件。我基于 article下面的内容进行了以下工作。 test.vbs文件的内容
Sub CustomInclude(file)

  Dim fso, f

  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile(file & ".vbs", 1)

  str = f.ReadAll

  f.Close

  ExecuteGlobal str

End Sub

'Set variables here
Dim apple(10)
apple(0)= "banana"
apple(1)= "2 banana"
apple(2)= "3 banana"

' Now call subroutine to include my external file.
CustomInclude "../main"  'Use of relative folder structure

main.vbs的内容

MSGBOX apple(0)
MSGBOX apple(1)
MSGBOX apple(2)

太棒了,你救了我的一天。但是这个在我的项目中有一个限制。我的项目可能会同时使用HTA和HTML文件,其中HTML文件将由HTA自动在IE中打开。由于你正在使用Set fso = CreateObject("Scripting.FileSystemObject"),这会提示用户使用ActiveX组件,而我不想要这个.. 有什么建议吗? - Prabhu Vignesh Rajagopal

0
如果这是一个网页,您可以使用HTML include 来使其正常工作。(通常将其粘贴到您想要内容的位置。(如head标签或body标签等...))
<!--#include file="../include/FileWithVaraibles.htm"-->

使用 #include


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接