VBScript 用法


VBScript 是一种被广泛应用于 ASP(Active Server Pages)和 Windows 脚本等平台的脚本语言,它是 Visual Basic 的一种轻量级版本。VBScript 的语法简洁易懂,可用于编写诸如 Windows 对话框和 Internet 浏览器等方面的应用程序。本文将介绍 VBScript 的语法、数据类型、流程控制、对象模型以及常见的应用场景等内容。

语法

VBScript 的语法和 Visual Basic 类似,是一种过程式语言,支持面向对象和事件式编程。VBScript 代码通常以 .vbs 文件扩展名保存。以下是一个简单的 VBScript 代码示例:

' 定义变量
Dim a, b, c
a = 5
b = 10
' 计算并输出结果
c = a + b
MsgBox "a + b = " & c

其中,Dim 关键字用于声明变量,& 符号用于连接字符串,MsgBox 函数用于显示消息对话框。

数据类型

VBScript 支持多种数据类型,包括整数、浮点数、字符串、布尔值、日期时间、数组和对象等。以下是 VBScript 常见的数据类型及其示例:

整数:   Dim i : i = 10
浮点数: Dim f : f = 3.14
字符串: Dim s : s = "Hello, world!"
布尔值: Dim b : b = True
日期时间:Dim d : d = Now()
数组:   Dim arr(3) : arr(0) = 1 : arr(1) = 2 : arr(2) = 3
对象:   Set obj = CreateObject("Scripting.FileSystemObject")

流程控制

VBScript 支持类似于其他编程语言的流程控制语句,包括条件语句 If...ThenSelect Case,循环语句 For...NextWhile...WendDo...Loop 等。以下是 VBScript 常见的流程控制语句及其示例:

' If...Then 条件语句
If a > b Then
    MsgBox "a > b"
ElseIf a < b Then
    MsgBox "a < b"
Else
    MsgBox "a = b"
End If

' Select Case 多重条件语句
Select Case fruit
    Case "apple"
        MsgBox "It is an apple!"
    Case "banana"
        MsgBox "It is a banana!"
    Case Else
        MsgBox "Unknown fruit."
End Select

' For...Next 循环语句
For i = 1 To 5
    MsgBox "i = " & i
Next

' While...Wend 循环语句
i = 1
While i <= 5
    MsgBox "i = " & i
    i = i + 1
Wend

' Do...Loop 循环语句
i = 1
Do Until i > 5
    MsgBox "i = " & i
    i = i + 1
Loop

对象模型

VBScript 可以与多种对象模型交互,包括 Windows Script Host、Internet Explorer、ASP 和 WMI 等。以下是 VBScript 常见的对象及其示例:

' 文件系统对象 FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.GetFile("C:\test.txt")
MsgBox "File size: " & file.Size & " bytes"

' 网络对象 WinHttp.WinHttpRequest
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
http.Open "GET", "https://www.w3.org/TR/PNG/iso_8859-1.txt"
http.Send
MsgBox "Response: " & http.ResponseText

' Internet Explorer 对象 InternetExplorer.Application
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "https://www.baidu.com"

应用场景

VBScript 可以应用于多种场景,包括 Windows 脚本、自动化脚本、网页脚本、数据库脚本和系统管理脚本等。以下是 VBScript 常见的应用场景及其示例:

' Windows 脚本
' 显示一个输入框和一个消息框
input = InputBox("What is your name?")
MsgBox "Hello, " & input & "!"

' 自动化脚本
' 通过 IE 自动提交表单并获取响应
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.Navigate "https://www.baidu.com"
Do While ie.Busy
    WScript.Sleep 100
Loop
ie.Document.getElementById("kw").Value = "VBScript"
ie.Document.forms(0).submit
Do While ie.Busy
    WScript.Sleep 100
Loop
MsgBox ie.Document.documentElement.outerHTML

' 网页脚本
' 改变文本颜色和背景颜色
document.body.style.color = "red"
document.body.style.backgroundColor = "yellow"

' 数据库脚本
' 查询并输出数据库中的数据
Set conn = CreateObject("ADODB.Connection")
conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\test.mdb"
Set rs = conn.Execute("SELECT * FROM table1")
Do While Not rs.EOF
    MsgBox rs("name") & " " & rs("age")
    rs.MoveNext
Loop
rs.Close
conn.Close

' 系统管理脚本
' 输出系统信息和 CPU 占用率
Set wmi = GetObject("winmgmts:\\.\root\CIMV2")
Set cpu = wmi.ExecQuery("SELECT * FROM Win32_PerfFormattedData_PerfOS_Processor WHERE Name = '_Total'")
For Each item In cpu
    str = "System information:" & vbCrLf & _
        "  Computer name: " & Environment("COMPUTERNAME") & vbCrLf & _
        "  OS version: " & Environment("OS") & vbCrLf & _
        "  RAM size: " & FormatNumber(item.SystemUpTime / 1000 / 60 / 60 / 24, 1) & " days" & vbCrLf & vbCrLf & _
        "CPU usage: " & item.PercentProcessorTime & "%"
    MsgBox str
Next

以上是 VBScript 的语法、数据类型、流程控制、对象模型以及常见的应用场景等内容。VBScript 的简洁易懂使其成为 Windows 系统管理和自动化脚本编写的一种有力工具。