iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >vbscript如何实现include
  • 884
分享到

vbscript如何实现include

2023-06-08 10:06:01 884人浏览 泡泡鱼
摘要

这篇文章主要为大家展示了“vbscript如何实现include”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vbscript如何实现include”这篇文章吧。任何真正实用的工程开发都必然是多

这篇文章主要为大家展示了“vbscript如何实现include”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vbscript如何实现include”这篇文章吧。

任何真正实用的工程开发都必然是多文件的。但是VBScript创建多文件工程要麻烦一点,它对多文件工程,代码复用的支持并不是太好。在C/C++工程里,我们已经习惯了通过一个include语句,并且声明一个函数原形的方式来使用其它模块中的函数,这样一个复杂的工程可以比较容易地分解成一些小的模块,以更容易理解和掌握。VBScript中情况有些不同。这与它的设计目标有关。最初VBScript是用在客户端脚本,以支持与客户端作简单的交互,如简单的输入检查等等。在浏览器里显然没有办法支持对另一个文件中的函数的调用,你不知道那个文件是否存在,何时存在。那么以本地脚本形式执行的VBScript又怎么样呢?想想看这条命令:cscript.exe yourscript.vbs。显然一个VBS运行在一个进程空间里(cscript进程),它也没有办法得到另一个文件中的函数。

认识到了VBScript的局限性,我们来看如何解决它。

第一种需要可能是需要在一个脚本运行的中间直接运行另外一个脚本。这可以通过下面的方法来完成:

Set WSHshell = CreateObject("WScript.Shell")
WSHShell.Run "wscript c:\Test.vbs param1", , True

注意到这里我们Test.vbs运行在另外一个进程空间(wscript进程)里,加上执行当前脚本的WSH,我们一共有两个进程。这是通过WSHShell.Run来做到的,这个方法的原型是:

object.Run(strCommand, [intwindowstyle], [bWaitOnReturn])

如果时序很重要,你可以在bWaitOnReturn这个参数中指定主脚本是否要等待被执行的脚本运行结束后才能继续。

另一点需要注意的地方是strCommand参数,这个参数是一个复合体,以空格区分各个域。如果需要将运行参数传递给被调用的脚本,应该在第二个空格后面输入。下面的例子显示了如何获取主脚本传递来的参数。对了,是通过WScript.Arguments来访问。WSCript还有其他一些有趣的属性,请记得读一下文档。

Set oArgs = WScript.Arguments
For i = 0 to oArgs.Count - 1
WScript.Echo oArgs(i)
Next

关于参数解析,这里给出一个Windows 2000 support tools中的一个脚本的例子。你可以复用这个函数,以解析任何以/ArgName:Value形式指定的参数。

' searches for and returns the value of a command line argument of the fORM
' /argName:value from the supplied array. erases the entry in the array so
' that only untouched entries remain.

function GetArgValue(argName, args())
dim a
dim v
dim argNameLength
dim x
dim arGCount
dim fullArgName

fullArgName = "/" & argName & ":"
argCount = Ubound(args)

' Get the length of the argname we are looking for
argNameLength = Len(fullArgName)
GetArgValue = "" ' default to nothing

for x = 0 To argCount
if Len(args(x)) >= argNameLength then

a = Mid(args(x), 1, argNameLength)
if UCase(a) = UCase(fullArgName) then

' erase it so we can look for unknown args later
v = args(x)
args(x) = ""

if Len(v) > argNameLength then
GetArgValue = Mid(v, argNameLength + 1)
exit function
else
GetArgValue = ""
exit function
end if
end if
end if
next
end function

更多的时候,我们需要在脚本之间共享变量,以及相互调用函数。我们想要得到C/c++中那样的便利性:通过一个Include声明,就可以将另外一个模块中的函数和变量引入到当前的模块中。在VBScript中,可以通过ExecuteGlobal来实现:

Sub Include(sInstFile)
Dim oFSO, f, s
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set f = oFSO.OpenTextFile(sInstFile)
s = f.ReadAll
f.Close
ExecuteGlobal s
End Sub

这样,在脚本中加上这样一句调用:Include "mylib.vbs",就可以使用mylib.vbs中声明的全局变量和函数了!注意这里的函数ExecuteGlobal有一个类似的函数Execute,这里如果使用Execute的话,就达不到我们想要的效果。因为通过Execute暴露的名字,其作用范围局限于Execute所处的级别,在这里,也就是在函数Include内部。这几乎肯定不是你想要的结果。

还有别的方法吗?是的。VBScript内在的支持COM方式。如果可以将你的脚本编译成一个COM组件,就当然可以在别的脚本中调用组件中的方法了。恰好,MS提供了工具Script Component Wizard来帮助我们将一些VBScript文件打包成一个组件,并提供注册方法。

现在我们来学一些新的方法。我的意思是,这些方法是仅为WSH支持的,你可能以前并没有遇见过。WSH支持一种叫*.wsf的文件,这个文件本身是XML格式的,通过该文件可以将你的VBScript脚本,以及其它类型的脚本,比如batch,perl等等组装在一起,交给WSH来执行。这方面文档还算详细,这里就不多介绍了。

这一节里,介绍了由单个脚本文件组装成一个较大的工程的四种方法,通过运用这些方法,你可以建立自己的常用函数库,在各个脚本之间共享变量和传递数据,等等。
在网上找到一段实现的代码,在这次的项目中起了大作用了。用vbs实现很多复杂的业务时,需要把一些公共的函数,class等写在一个公共的可复用的vbs文件里,像个库一样,其他的脚本都包含这个库的脚本。

复制代码 代码如下:


Sub Include(sInstFile)
Dim oFSO, f, s
Set oFSO = CreateObject("Scripting.FileSystemObject")
Set f = oFSO.OpenTextFile(sInstFile)
s = f.ReadAll
f.Close
ExecuteGlobal s
End Sub


使用的时候,这个把这个sub放在代码里,然后用 Include "comm.vbs" 这样来包含以下就可以了

以上是“vbscript如何实现include”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: vbscript如何实现include

本文链接: https://www.lsjlt.com/news/253691.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vbscript如何实现include
    这篇文章主要为大家展示了“vbscript如何实现include”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“vbscript如何实现include”这篇文章吧。任何真正实用的工程开发都必然是多...
    99+
    2023-06-08
  • 如何实现VBScript验证
    本篇内容介绍了“如何实现VBScript验证”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简单验证使用 Visual Basic Scrip...
    99+
    2023-06-09
  • HTML中如何实现类似include功能
    在HTML中,可以使用JavaScript实现类似include的功能。具体步骤如下:1. 创建一个用于加载外部HTML文件的Jav...
    99+
    2023-08-18
    HTML
  • 如何通过vbscript实现文件下载
    这篇文章主要介绍了如何通过vbscript实现文件下载,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、VBS下载者:代码如下:Set Post = CreateObject...
    99+
    2023-06-08
  • VBScript如何实现输出中的对齐
    这篇文章主要介绍了VBScript如何实现输出中的对齐,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。运行效果:代码(fOutput.vbs):strComputer = &q...
    99+
    2023-06-08
  • vbscript如何实现Registry注册表操作
    这篇文章主要介绍vbscript如何实现Registry注册表操作,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!VBScript Code:' Create a WSH ...
    99+
    2023-06-08
  • vbscript如何实现logparser的ISA2004 Web流量报告
    这篇文章给大家分享的是有关vbscript如何实现logparser的ISA2004 Web流量报告的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。我的很多客户希望能够每天或每周得到一份员工浏览Web情况的报告,例...
    99+
    2023-06-08
  • 如何理解VBScript
    这篇文章主要讲解了“如何理解VBScript”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何理解VBScript”吧!Microsoft Visual Basic Scripting Ed...
    99+
    2023-06-09
  • 静态页面如何实现include引入公用代码
    小编给大家分享一下静态页面如何实现include引入公用代码,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一直以来,我司的前端都...
    99+
    2022-10-19
  • 如何使用Include Cpp
    这篇文章主要介绍“如何使用Include Cpp”,在日常操作中,相信很多人在如何使用Include Cpp问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Includ...
    99+
    2022-10-19
  • HTML怎么实现类似include功能
    在HTML中,没有内置的include功能,但可以使用JavaScript来实现类似的功能。一种方法是使用jQuery库中的load...
    99+
    2023-08-19
    HTML
  • 如何调试JScript/VBScript
    这篇文章主要介绍了如何调试JScript/VBScript,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。可单步运行:  cscript //X ...
    99+
    2023-06-08
  • 怎么在VBS中实现vbscript堆栈
    今天就跟大家聊聊有关怎么在VBS中实现vbscript堆栈,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。脚本文件:d.vbs,包含堆栈的添加元素(压栈)、删除元素(出栈)、遍历、统计...
    99+
    2023-06-08
  • ASP动态include文件284607实现方法
     经常有这样的要求,根据不同的需求要求include不同的文件如各个人的不同设置,所以要求能动态include文件受<! #include file="filenam...
    99+
    2023-05-20
    动态 include
  • VBScript中怎么实现倒计时功能
    这篇文章给大家介绍VBScript中怎么实现倒计时功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。---- 要实现倒计时,主要用到的是一个时间函数: DateDIFF(),它的作用是求出两个日期之间的时间间隔。它的格...
    99+
    2023-06-03
  • VbScript如何封裝MS OWC
    这篇文章主要介绍VbScript如何封裝MS OWC,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!代码如下:''OWC1.VBS class owc private o '傳入物件 publi...
    99+
    2023-06-08
  • vbscript ms owc如何封裝
    小编给大家分享一下vbscript ms owc如何封裝,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码如下:''owc.vbs class o...
    99+
    2023-06-08
  • 如何理解VBScript过程
    本篇内容介绍了“如何理解VBScript过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!VBScript 过程在 VBScript 中,过...
    99+
    2023-06-08
  • 如何编写VBScript页面
    本篇内容介绍了“如何编写VBScript页面”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!VBScript 页面的简单样例一个简单页面使用 ...
    99+
    2023-06-08
  • python include标签如何使用
    这篇文章主要介绍了python include标签如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python include标签如何使用文章都会有所收获,下面我们一起来看看吧。inc...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作