51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 14222|回复: 34
打印 上一主题 下一主题

[原创] 一个VBS脚本调用另一个VBS脚本

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-4-25 17:12:45 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
写一个脚本列如
    dim str
   str="asfasfasdfasdf"
   call sub_output(str)
   public sub sub_output(str)
       MsgBox(str)
   end sub
保存,"E\aaa.vbs"
打开另一个脚本,
set a=createobject("wscript.shell")
a.run "E\aaa.vbs"
运行这个脚本就可以输出"asfasfasdfasdf"

现在,我想知道:
假如写一个脚本列如
   public sub sub_output(str)
       MsgBox(str)
   end sub
保存,"E\aaa.vbs"
当然也可以写成一个类
class classA
     public sub sub_output(str)
       MsgBox(str)
     end sub
end class

怎么才能实现在另一个脚本里调用它,比如这样
set a=new classA
str1="asdfasf"
a.sub_output(str1)
在vbs里面可以实现吗,怎么实现?请解答!
(网上没找到,寄希望于此了)
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

35#
发表于 2011-3-31 22:27:06 | 只看该作者
怎么我哪个总是报错

ExcuteGlobal s
这句的时候,总是报s错误
回复 支持 反对

使用道具 举报

  • TA的每日心情
    开心
    2018-7-13 14:04
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]测试排长

    34#
    发表于 2010-9-24 21:56:34 | 只看该作者
    在VBScript中,可以用ExecuteGlobal语句来在一个脚本文件中加载另外一个脚本的函数,例如,假设需要加载的是脚本Test.vbs:
    Function Test1
    Msgbox "Test1"
    End Function

    那么可以在脚本ExecuteGlobal.vbs中按下面的方式加载并调用Test1函数:
    Set fso = CreateObject("Scripting.FilesyStemObject")
    Str = fso.OpenTextFile("Test.vbs", 1).ReadAll
    ExecuteGlobal Str
    Set fso = Nothing

    Test1


    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/Testing_is_ ... /01/19/5214523.aspx
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    33#
    发表于 2010-3-19 15:39:37 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    32#
    发表于 2010-3-19 15:37:40 | 只看该作者
    路过
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    31#
    发表于 2010-3-19 13:12:49 | 只看该作者
    学习了,谢谢16楼的推荐;
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    30#
    发表于 2009-12-29 15:30:17 | 只看该作者
    16楼给的连接的那篇文章很不错,我顶,我狂顶
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    29#
    发表于 2009-12-22 16:08:47 | 只看该作者
    原帖由 mstiunicon 于 2008-4-29 01:10 发表


    之前找了很久vbs文件互相调用的方法,都没找到。到后来还是使用了QTP的ExecuteFile函数才解决的。看了这个帖子后,才发现原来有这么多方式。

    同感!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    28#
    发表于 2009-12-14 14:28:53 | 只看该作者
    up
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    27#
    发表于 2008-8-20 07:47:16 | 只看该作者
    这资料真是及时啊,差点就因为这个小问题挂了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    26#
    发表于 2008-5-16 16:55:21 | 只看该作者

    ding

    studying..
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    25#
    发表于 2008-5-9 11:17:34 | 只看该作者
    按照第16楼链接的方法:
    写一个脚本,
    class classA
         public sub sub_output(str)
           MsgBox(str)
         end sub
    end class
    保存,"E:\aaa.vbs"
    再写一个脚本,
    Include "E:\bbb.vbs"
    set a=new classA
    str1="asdfasf"
    a.sub_output(str1)
    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
    保存,"E:\bbb.vbs"
    最后在QTP中运行bbb.vbs就可以了吧。

    [ 本帖最后由 RayTM 于 2008-5-9 11:21 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    24#
    发表于 2008-5-7 15:47:22 | 只看该作者
    要include另一个vbs,可以这样写:
    ' Includes a file in the global namespace of the current script.
    ' The file can contain any VBScript source code.
    ' The path of the file name must be specified absolute (or
    ' relative to the current directory).
    Private Sub IncludeFile(ByVal FileName)
        Dim fso: set fso = CreateObject("Scripting.FileSystemObject")
        Const ForReading = 1
        Dim f: set f = fso.OpenTextFile(FileName,ForReading)
        Dim s: s = f.ReadAll()
        ExecuteGlobal s
    End Sub

    IncludeFile "CreateNode.vbs"
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    23#
    发表于 2008-5-7 15:04:41 | 只看该作者
    WSC里用cstring,不然2003上会跳确认框
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    22#
    发表于 2008-5-7 12:02:01 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    21#
    发表于 2008-5-7 11:28:14 | 只看该作者
    看了通篇的讨论 长见识了  长知识了 谢谢大家分享
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2008-5-5 14:35:18 | 只看该作者
    恩,学习到非常有用的东西,非常感谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2008-4-29 11:01:11 | 只看该作者
    看来除了ExecuteFile函数后,还有另外一个方式调用VBS file,学习了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    18#
    发表于 2008-4-29 10:00:11 | 只看该作者
    相当不错,学习了~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17#
    发表于 2008-4-29 01:10:29 | 只看该作者
    原帖由 gy21st 于 2008-4-28 16:31 发表
    这里有一篇文章写得比较全面,可以参考一下。
    http://hi.baidu.com/myvbscript/b ... 6e83014b90a7be.html


    之前找了很久vbs文件互相调用的方法,都没找到。到后来还是使用了QTP的ExecuteFile函数才解决的。看了这个帖子后,才发现原来有这么多方式。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-12 06:39 , Processed in 0.079769 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表