不能把函数集中放在一个文件的话,该怎么做?

天灵狐 2015-12-17 09:55:31
我是运维工程师,一般要用VBScript写自动化运维脚本。

像PHP这类语言,是可以把所有的函数放到一个文件,然后在开头声明这个文件,就可以调用此文件中的所有函数了吧?

VBScript该怎么做?

如果做不到的话,我该怎么办?依然麻烦的修改一个函数,就要修改所有包括这个函数的脚本文件?
...全文
2455 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
刚才看一篇文章,她们用了。go语言。以前用其他脚本三十多台服务器还,满足不了数据的采集,现在只要两台,而且CPU基本都是占用为零。 这个优化也很重要,你们也可以把一些常用的功能把它做成dll,然后给vbS调用。这样,只要保持这个dl方法一样的,然后呢需要的时候把整个更新的dll文件替换一下就行了。这个时候才是真正的你把dll全部放在同一个位置,vbs用到哪个它只占用这点内存. 因为vbs不需要知道dll在哪个位置,她自己会在注册表里找到。
天灵狐 2016-09-21
  • 打赏
  • 举报
回复
引用 9 楼 xiaoyao961 的回复:
你可以把所有的VBS文件放在一个或多个目录下,如果多个VBS用到同一个函数,你可以写个工具把这个函数替换掉就行了,每次运行估计也用不了几秒。 只要函数的参数一致,只是函数内部改了一下的很简单的事。 '┏〓〓〓〓〓〓〓〓〓 SaveFile,start 〓〓〓〓〓〓〓〓〓┓ '[简介]: '保存文件 Function SaveFile(zname, zbody, Optional Msg As Boolean) '[mycode_id:177],edittime:2007-4-22 13:58:38 On Error GoTo err Dim myfile, fso Set fso = CreateObject("Scripting.FileSystemObject") Set myfile = fso.CreateTextFile(zname, True) myfile.write zbody Set myfile = Nothing Set fso = Nothing If Msg Then MsgBox "保存成功!" & vbCrLf & zname Exit Function err: 'MsgBox err.Description End Function '┗〓〓〓〓〓〓〓〓〓 SaveFile,end 〓〓〓〓〓〓〓〓〓┛ 我每一个函数都有前后一句分隔的句子,然后函数下面还有一个更新日期(类似版本的原理),这样一下就可以把这个函数块给找出来,然后比较一下函数日期是否一样,不一样就替换一下这个函数,保存该VBS就行了。 ,我写软件15年了,有单可以找我QQ2776478814
学到了,相当优秀的方法,谢了
  • 打赏
  • 举报
回复
你可以把所有的VBS文件放在一个或多个目录下,如果多个VBS用到同一个函数,你可以写个工具把这个函数替换掉就行了,每次运行估计也用不了几秒。 只要函数的参数一致,只是函数内部改了一下的很简单的事。 '┏〓〓〓〓〓〓〓〓〓 SaveFile,start 〓〓〓〓〓〓〓〓〓┓ '[简介]: '保存文件 Function SaveFile(zname, zbody, Optional Msg As Boolean) '[mycode_id:177],edittime:2007-4-22 13:58:38 On Error GoTo err Dim myfile, fso Set fso = CreateObject("Scripting.FileSystemObject") Set myfile = fso.CreateTextFile(zname, True) myfile.write zbody Set myfile = Nothing Set fso = Nothing If Msg Then MsgBox "保存成功!" & vbCrLf & zname Exit Function err: 'MsgBox err.Description End Function '┗〓〓〓〓〓〓〓〓〓 SaveFile,end 〓〓〓〓〓〓〓〓〓┛ 我每一个函数都有前后一句分隔的句子,然后函数下面还有一个更新日期(类似版本的原理),这样一下就可以把这个函数块给找出来,然后比较一下函数日期是否一样,不一样就替换一下这个函数,保存该VBS就行了。 ,我写软件15年了,有单可以找我QQ2776478814
天灵狐 2016-09-08
  • 打赏
  • 举报
回复
引用 7 楼 hookee 的回复:
用 WSC文件,创建对象时用 GetObject("script:路径")
谢谢你的回复 ..我记得WSC是可以同时跑JS与VBS文件的文件,我试一试
hookee 2016-09-08
  • 打赏
  • 举报
回复
用 WSC文件,创建对象时用 GetObject("script:路径")
hijack00 2016-09-07
  • 打赏
  • 举报
回复
我知道shell脚本是支持的,可以用.引入其他shell脚本文件中的函数或者变量定义。
天灵狐 2016-03-22
  • 打赏
  • 举报
回复
引用 4 楼 dogfish 的回复:
写成scriptlet。调用的时候像class一样。
谢谢你的回复
Dogfish 2016-03-01
  • 打赏
  • 举报
回复
写成scriptlet。调用的时候像class一样。
天灵狐 2016-01-04
  • 打赏
  • 举报
回复
引用 1 楼 wch0410 的回复:
同样啊,像PHP那样,把所有的函数放到一个文件,然后在开头声明这个文件,就可以调用此文件中的所有函数
我不是写界面的..我是写桌面脚本的..
天际的海浪 2015-12-30
  • 打赏
  • 举报
回复
vbscript是脚本语言,本身是没有I/O功能的,要看你的系统宿主环境是否提供了。 宿主环境不用,具体代码也不一样,这要查询你系统的api说明。 比如ie浏览器是 document.write("<script type='text/vbscript' src='xxx.vbs'></scr"&"ipt>") 有的系统是 App.Include("xxx.vbs")
freetaiger 2015-12-30
  • 打赏
  • 举报
回复
同样啊,像PHP那样,把所有的函数放到一个文件,然后在开头声明这个文件,就可以调用此文件中的所有函数

4,008

社区成员

发帖
与我相关
我的任务
社区描述
它是一种微软环境下的轻量级的解释型语言,它使用COM组件、WMI、WSH、ADSI访问系统中的元素,对系统进行管理。
社区管理员
  • vbScript社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧