一步一步学VBScript(3)之WSH对象二

前沿:

大家好,上篇我们简单的讲述了WSH中的echo与sleep方法。

今天我会在这篇中系统的把wsh obj对象都介绍遍。

希望对您会有所帮助。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

正篇开始前,我先把上期的答案公布下。

上期的代码。

Dim a,b

a = InputBox("Insert a Number to a")

b = InputBox("Insert a Number to b")

WScript.Echo a + b

 

分别在对话框输入1之后,显示答案为11。

其实计算机没有错哦。

原因很简单。inputbox输入的内容为文字列。

通过加号也是可以连接文字列的。

所以这里请大家特别小心。

不过一般连接文字还是请使用&。

 

如果要使上面的脚本正确的计算的话。只要修改成。

Dim a,b

a = cint(InputBox("Insert a Number to a"))

b = cint(InputBox("Insert a Number to b"))

WScript.Echo a + b  

这里Cint可以将内容转为为int型。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  

现在开始我们的关于WSH对象的内容介绍哦。

今天的内容主要来源于微软Technet http://technet.microsoft.com/en-us/library/ee156585.aspx  

首先我们来张总图

p_w_picpath  

分类            方法与属性
a.Using COM objects

            CreateObject, GetObject

b.Handling input and  output            Echo, StdOut, StdIn, StdErr
c.Working with Command-line arguments

            Arguments

d.Controlling script execution            Quit, Sleep, Timeout, Interactive
e.Obtaining WSH environment info

            Application, BuildVersion, FullName,    Name, Path, ScriptFullName, ScriptName, Version

f.Handling events

CreateObject, GetObject, ConnectObject, DisconnectObject

  估计有些朋友看到上面的一大堆东西已经开始头大了吧。 不过这些都是基础中的基础哦。所有的脚本都是从这个开始的。 不过大多数情况都是固定的开场白如 Set objWMIService = Wscript.GetObject("winmgmts:")

ok。让我们开始一点点说开这些内容吧。

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

(1)Using COM objects

1.1 请先看段例子

Set objShell = Wscript.CreateObject("Wscript.Shell")

Set objPath = objShell.Environment("Process")

WScript.Echo objpath("NUMBER_OF_PROCESSORS")

WScript.Echo objpath("HOMEPATH")

WScript.Echo objpath("SYSTEMROOT")

 

这个是显示windows环境的。

我们不难发现。这个脚本的地开端是源于

Set objShell = Wscript.CreateObject("Wscript.Shell")

 

在这里,我们只有2个地方可以人为定义的

1.创建对象的名 objshell

2.创建相应的对象的引用 Wscript.Shell

如果修改其他的地方,改错了肯定执行不了哦。

 

1.2 那么不是说还有GetObject嘛。

CreatObject与Getobject的区别就在于

Getobject是对存在对象的引用如

Set objWMIService = WScript.GetObject("winmgmts:")

WMI对象是存在的。如果您把服务里面的WMI服务关了的话。

当您运行这个脚本的话,会开启服务的哦。

但是对于脚本来说,他是对与现有存在对象的获取。

 

而Creatobject是对与不存在的对象的创建。

Set objReference = Wscript.CreateObject("Word.Application")

他会创建一个Word进程。

不过脚本结束后可不会关闭Word进程哦。这个需要注意的

 

1.3 比较WSH与VBScript的CreatObject与GetObject VBScript语法中也同样有CreatObject与GetObject 他与WSH的CreatObject与GetObject都是创建或取得COM Object的对象。

如下面的例子

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objFSO = Wscript.CreateObject("Scripting.FileSystemObject")

如果只有一个参数的话。两者其实是一样的。同样都是创建COM Object的对象。

 

区别:

当如果有地第2个参数的时候。两者的解释是不同的。

如下面的代码:

Set objExcel = CreateObject("Excel.Application", "Parameter2")

Set objExcel = Wscript.CreateObject("Excel.Application", "Parameter2")

 

第一个是使用VBScript 的CreatObject。第二个是WSH

VBScript的情况下 第二个参数Parameter2是表示远程计算机

他会在Parameter2的远程计算机上创建个EXCEL的实例

WSH的情况下,第二个参数表示为启用一个子程序用来处理事件对象。

 

所以如果您使用的是一个单参数的创建实例对象方法。那么不管VBScript还是WSH。

他们都是一样的。

但是如果您打算在远程计算机上创建实例对象或创建一个对应的事件处理的话。

那么您就需要用到第参数。这个时候,您就需要注意两者的区别了。

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

 

总结:

1.今天介绍了WSH中的对象。

2.解释了关于WSH中的Using COM objects的相关方法

   也就是Creatobject与Getobject.

3.比较了VBScript与WSH中的CreatObject的区别。

 

 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

下期内容

介绍Handing input 与 Output的相关方法。

 

如果您对于这次内容有相关的意见与建议的话。

非常欢迎您的指导与探讨。