51Testing软件测试论坛

标题: WScript.Echo [打印本页]

作者: pirate    时间: 2007-12-27 15:21
标题: WScript.Echo
Set WshNetwork = WScript.CreateObject("WScript.Network")
WScript.Echo "Computer Name = " & WshNetwork.ComputerName
我想用这个来显示主机名,但是怎么都不通,请各位大虾帮忙看一下!
作者: jinsen    时间: 2007-12-27 15:43
因为你没有在调用WScript的属性和方法前对它进行实例化。
作者: pirate    时间: 2007-12-27 15:44
请问一下,我该怎么做呢?能不能帮我完善以下这几句代码!谢谢
作者: jinsen    时间: 2007-12-27 16:03
步骤:
1.新建一个vbs文件。
2.把以下代码Copy进去,并且保存。(test.vbs是我用的文件名)
dim WshNetwork
Set WshNetwork = WScript.CreateObject("WScript.Network")
WScript.Echo "Computer Name = " & WshNetwork.ComputerName
3.开始->
   运行(cmd)[弹出一个DOS界面]->
   键入:WScript.exe /E:VBSCRIPT test.vbs->
   Enter

这样就能运行那三句代码了。
作者: pirate    时间: 2007-12-27 16:28
我按照你说的作了,结果是 The syntax of the command is incorrect.
请问一下这是怎么回事?
作者: gy21st    时间: 2007-12-27 16:40
Set WshNetwork = CreateObject("WScript.Network")
msgbox "Computer Name = " & WshNetwork.ComputerName

这是你要的效果。QTP里不要直接用WScript
作者: jinsen    时间: 2007-12-27 16:41
这是我运行后的效果。
作者: pirate    时间: 2007-12-27 16:43
为什么不能在QTP里直接用WScript?
作者: gy21st    时间: 2007-12-27 16:45
原帖由 jinsen 于 2007-12-27 15:43 发表
因为你没有在调用WScript的属性和方法前对它进行实例化。

WScript在VBS里直接用就是,不需要什么实例化的。
作者: jinsen    时间: 2007-12-27 16:58
原帖由 gy21st 于 2007-12-27 16:45 发表

WScript在VBS里直接用就是,不需要什么实例化的。


晕啊,搞了半天楼主是要在QTP里跑啊!
我看楼主的代码有用到[WScript.Echo],我才说了那种方法。
在楼主的另一个贴子里我都把代码贴出来了。不同的只是我用了[print],没有用[MsgBox]。
作者: gy21st    时间: 2007-12-27 17:06
原帖由 pirate 于 2007-12-27 16:43 发表
为什么不能在QTP里直接用WScript?

WScript 对象是 Windows 脚本宿主对象模型层次结构的根对象。它从不需要在调用其属性和方法之前进行实例化.
但如果你的脚本在QTP中运行,QTP虽然使用VBScript语言,但它并没有这个对象,所以会出错。
直接在window命令行运行vbs文件(js文件也一样),实际是WSH(wscript.exe或cscript.exe)解析脚本。当然不会有问题。
作者: pirate    时间: 2007-12-27 17:08
谢谢大家的帮忙!
明白了
作者: Jie    时间: 2007-12-27 17:23
学到东西,呵呵




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2