当前位置:  开发笔记 > 编程语言 > 正文

如何在VBScript中包含公共文件(类似于C#include)?

如何解决《如何在VBScript中包含公共文件(类似于C#include)?》经验,为你挑选了3个好方法。

VBScript似乎没有办法包含一个公共函数文件.

有没有办法实现这个目标?



1> paxdiablo..:

您可以在要包含其他文件的每个文件中创建(相对)小函数,如下所示:

sub includeFile (fSpec)
    dim fileSys, file, fileData
    set fileSys = createObject ("Scripting.FileSystemObject")
    set file = fileSys.openTextFile (fSpec)
    fileData = file.readAll ()
    file.close
    executeGlobal fileData
    set file = nothing
    set fileSys = nothing
end sub

然后使用它来包含特定文件 - 这些文件就像它们是内联的一样执行.

includeFile "commonapi.vbi"
includeFile "dbcalls.vbi"

它基本上打开文件,将整个内容读入一个字符串,然后执行该字符串.在I/O调用上没有错误处理,因为这种东西通常在程序启动时完成一次,如果出现包含它的问题,你想要失败.


请注意,该includeFile函数可以压缩为:

Sub includeFile(fSpec)
    With CreateObject("Scripting.FileSystemObject")
       executeGlobal .openTextFile(fSpec).readAll()
    End With
End Sub

或者甚至(如果你不喜欢长线):

Sub includeFile(fSpec)
    executeGlobal CreateObject("Scripting.FileSystemObject").openTextFile(fSpec).readAll()
End Sub



2> Richard B..:

"Windows脚本宿主"框架(如果你想称之为),提供了一个XML包装器文档,它增加了常规vbs文件的功能.其中之一是能够包含VBscript和Jscript风格的外部脚本文件.我从来没有深入到它,但我认为它会做你想做的事情. http://msdn.microsoft.com/en-us/library/15x4407c(VS.85).aspx

您可以包含JavaScript,VBScript或其他WScript脚本语言的模块.

示例WSF文件:


   

Constants.vbs收集所有的常量,你以后要使用,并在其他VBS文件定义的功能.在主程序文件中MainProgram.vbs,创建一个sub调用MainProgram()程序并在那里编写程序.在此子例程中,您可以使用其他VBS文件中定义的所有常量和函数.

例如 :

sub MainProgram()
  ' Local variables
  Dim strMessage, strSendTo, strSubject
  ' OpenFile is a function from FileFunctions.vbs
  strMessage = OpenFile("C:\Msg\message.html")
  strSendTo = "email.address@yourdomain.com"
  strSubject = "Daily report - " & date
  ' SendMessage is a function from SendMail.vbs
  ' cFrom and cServer are constants from Constants.vbs
  SendMessage(cFrom, strSendTo, strSubject, strMessage, cServer)
  ' Logger is a function from LoggingFunctions.vbs
  Logger("Daily report sent - " & now())
end sub

希望你能得到这个想法,我可以帮助一些人写出更好的VBS应用:)

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有