常见错误和缺陷
在 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 函数