常见错误和缺陷

VBScriptVisual Basic Scripting 語言是 Microsoft® 開發的高階程式設計語言。 中,存在两种类型的变量:

变量类型 描述
简单 变量是整型、布尔型和字符串等实际类型。
对象 是由自动化对象接口公开其功能的复杂项目。

为其分配值之前,必须将自动化对象类型声明为对象。

重要

强烈建议您将值分配给所有声明的变量和/或对象。

示例

函数 Main

'声明要使用的对象

Dim nameStr As String

'将值分配给变量

nameStr = "This is a test assignment of text"

'在扫描程序活动窗口中显示分配的结果

echo nameStr

'返回结果

Main = true

End 函数

以下是更高级的脚本示例,它将列出目标计算机上安装了哪些服务 (localhost = 127.0.0.1)。 在脚本调试程序中复制粘贴以下文本并运行 (F5)。 在调试窗口中,您将看到本地计算机上已安装服务的列表。

函数 main

'声明我们将需要使用的对象

Dim wmi As Object

Dim objswbemobject As Object

'声明我们需要的其他变量

Dim strComputer As String

Dim cr As String

strComputer = "127.0.0.1"

'回车符

cr = Chr(13) + Chr(10)

'与 wmi 对象相连

Set wmi = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

'检查连接是否成功

If wmi is Nothing Then echo ("error1")

'返回 wmi 的服务实例

Set wmiinst=wmi.instancesof("Win32_Service")

'检查实例是否可用

If wmiinst is Nothing Then echo ("error2")

'对每个实例进行 true 循环

For Each objswbemobject In wmiinst

echo("Service Name= ")

'显示服务

echo(objswbemobject.DisplayName+cr)

下一步

End 函数

如果您尝试使用自动化对象而未声明,该脚本将在编译时失败。 例如同一条代码,但缺少对象变量 wmi 的完全声明。 尝试运行该脚本时将显示错误消息,同时还将给出发生错误的脚本行的清除指示:

函数 main

Dim wmi 'WARNING : missing “as object”

Dim objswbemobject As Object

End 函数