VBScript 教程

VBScript(Visual Basic Script)是微软开发的一种轻量级脚本语言,主要用于自动化任务、网页开发(尤其在ASP中)和Windows系统管理。以下是一个简明实用的VBScript教程,涵盖基础知识和常见用法,适合初学者快速上手。


1. VBScript 简介

  • 定义: VBScript 是基于 Visual Basic 的脚本语言,运行在 Windows 环境中,通常用于客户端(IE浏览器)或服务器端(ASP)。
  • 特点:
  • 语法简单,易于学习。
  • 无需编译,直接嵌入HTML或以.vbs文件运行。
  • 常用于Windows脚本宿主(WSH)或自动化任务。
  • 运行环境:
  • Windows 系统自带 VBScript 引擎。
  • 可在文本编辑器(如记事本)编写,保存为.vbs文件双击运行,或嵌入HTML运行于浏览器。

2. 基本语法

2.1 编写第一个 VBScript

在记事本中输入以下代码,保存为 hello.vbs,双击运行:

MsgBox "Hello, VBScript!"
  • 说明: MsgBox 是一个弹出消息框的函数,显示文本“Hello, VBScript!”。

2.2 嵌入 HTML

在HTML文件中嵌入VBScript:

<html>
<head>
    <title>VBScript 示例</title>
</head>
<body>
    <script language="VBScript">
        MsgBox "欢迎使用 VBScript!"
    </script>
</body>
</html>
  • 保存为.html文件,用Internet Explorer打开(注:现代浏览器如Chrome不支持VBScript)。

2.3 注释

  • 单行注释:使用 'REM
  ' 这是一条单行注释
  REM 这也是单行注释
  • VBScript 不支持多行注释。

2.4 变量

  • 变量无需声明类型,默认是 Variant 类型。
  • 使用 Dim 声明变量:
  Dim name
  name = "Alice"
  MsgBox "Hello, " & name
  • 注意: 变量名不区分大小写,nameName 是同一个变量。

2.5 数据类型

VBScript 只有一种数据类型:Variant,但它可以存储不同子类型:

  • 整数 (Integer)
  • 浮点数 (Double)
  • 字符串 (String)
  • 布尔值 (Boolean)
  • 日期 (Date)
  • 对象 (Object)

检查类型:

Dim num
num = 42
MsgBox VarType(num) ' 返回 2,表示整数

2.6 运算符

  • 算术运算符: +, -, *, /, \(整除), Mod(取模)
  • 比较运算符: =, <>, <, >, <=, >=
  • 逻辑运算符: And, Or, Not
  • 字符串连接: &
  Dim a, b
  a = 10
  b = 20
  MsgBox a + b ' 输出 30
  MsgBox a & b ' 输出 "1020"(字符串连接)

3. 控制结构

3.1 条件语句

Dim score
score = 85
If score >= 60 Then
    MsgBox "及格"
Else
    MsgBox "不及格"
End If
  • 支持多条件:
  If score >= 90 Then
      MsgBox "优秀"
  ElseIf score >= 60 Then
      MsgBox "及格"
  Else
      MsgBox "不及格"
  End If

3.2 循环

  • For 循环:
  Dim i
  For i = 1 To 5
      MsgBox "第 " & i & " 次循环"
  Next
  • While 循环:
  Dim i
  i = 1
  While i <= 5
      MsgBox "第 " & i & " 次循环"
      i = i + 1
  Wend
  • Do While/Until 循环:
  Dim i
  i = 1
  Do While i <= 5
      MsgBox "第 " & i & " 次循环"
      i = i + 1
  Loop

3.3 退出循环

  • Exit For: 退出 For 循环
  • Exit Do: 退出 Do 循环
  For i = 1 To 10
      If i = 5 Then Exit For
      MsgBox i
  Next

4. 函数与过程

4.1 子过程 (Sub)

定义一个不返回值的子过程:

Sub SayHello(name)
    MsgBox "Hello, " & name
End Sub

Call SayHello("Alice") ' 调用子过程
  • 也可以省略 Call 直接写 SayHello "Alice"

4.2 函数 (Function)

定义一个返回值的函数:

Function Add(a, b)
    Add = a + b
End Function

MsgBox Add(3, 4) ' 输出 7

5. 数组

  • 声明数组:
  Dim arr(2) ' 声明一个长度为3的数组(索引0到2)
  arr(0) = "Apple"
  arr(1) = "Banana"
  arr(2) = "Orange"
  MsgBox arr(1) ' 输出 Banana
  • 动态数组:
  Dim dynArr()
  ReDim dynArr(2) ' 动态分配大小
  dynArr(0) = 10
  ReDim Preserve dynArr(3) ' 保留数据,扩展大小

6. 常用内置函数

  • 字符串操作:
  • Len(str): 返回字符串长度
  • Left(str, n): 取左边 n 个字符
  • Right(str, n): 取右边 n 个字符
  • Mid(str, start, len): 取子字符串
  • LCase(str), UCase(str): 转换为小写/大写
  Dim str
  str = "Hello World"
  MsgBox Len(str) ' 输出 11
  MsgBox Left(str, 5) ' 输出 Hello
  • 日期和时间:
  • Now(): 当前日期和时间
  • Date(): 当前日期
  • Time(): 当前时间
  MsgBox Now ' 输出当前日期和时间,如 9/19/2025 6:41:00 PM
  • 类型转换:
  • CStr(val): 转换为字符串
  • CInt(val): 转换为整数
  • CDbl(val): 转换为双精度浮点数
  Dim num
  num = "123"
  MsgBox CInt(num) + 10 ' 输出 133

7. 文件操作(使用 FileSystemObject)

VBScript 可通过 FileSystemObject 操作文件:

Dim fso, file
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.CreateTextFile("C:\test.txt", True)
file.WriteLine "Hello, VBScript!"
file.Close
  • 读取文件:
  Dim fso, file, content
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set file = fso.OpenTextFile("C:\test.txt", 1)
  content = file.ReadAll
  MsgBox content
  file.Close

8. 错误处理

VBScript 使用 On Error Resume Next 忽略错误:

On Error Resume Next
Dim x
x = 1 / 0 ' 除零错误
If Err.Number <> 0 Then
    MsgBox "错误: " & Err.Description
    Err.Clear
End If

9. 实际应用示例

9.1 自动化任务:创建文件夹

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
If Not fso.FolderExists("C:\MyFolder") Then
    fso.CreateFolder("C:\MyFolder")
    MsgBox "文件夹已创建"
Else
    MsgBox "文件夹已存在"
End If

9.2 网页交互

在HTML中获取用户输入:

<html>
<body>
    <input type="text" id="userInput">
    <button onclick="ShowInput()">提交</button>
    <script language="VBScript">
        Sub ShowInput()
            Dim input
            input = Document.getElementById("userInput").Value
            MsgBox "你输入了: " & input
        End Sub
    </script>
</body>
</html>

10. 注意事项

  • 兼容性: VBScript 仅在 Internet Explorer 和 Windows 环境中完全支持,现代浏览器(如 Chrome、Firefox)不支持。
  • 安全性: 由于 VBScript 可直接操作系统资源,运行不受信任的脚本可能有安全风险。
  • 替代方案: 对于现代开发,推荐使用 JavaScript 或 PowerShell 替代 VBScript。

11. 学习资源

  • 官方文档: 微软 MSDN VBScript 参考(https://learn.microsoft.com/en-us/previous-versions//t0aew7h6(v=vs.85))。
  • 实践: 尝试编写小型自动化脚本,如批量重命名文件或读取Excel数据。
  • 社区: 搜索 Stack Overflow 或相关论坛,获取 VBScript 问题的解决方案。

如果需要更深入的某个部分(如文件操作、COM对象、数据库连接)或具体示例,请告诉我!

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注