VB 教程
VB 教程
VB(Visual Basic)是微软推出的入门级编程语言,语法简单、上手快。VBScript 是 VB 的脚本语言版本,常用于 Windows 脚本、ASP 网页和办公自动化。
VB 语言家族
| 版本 | 用途 |
|---|---|
| Visual Basic 6.0 | 经典桌面应用开发 |
| VB.NET | .NET 平台现代开发 |
| VBA | Office 宏(Excel/Word) |
| VBScript | Windows 脚本、ASP、HTA |
为什么学 VBScript
- Windows 系统自带,wscript/cscript 直接运行
- 语法简单,适合自动化脚本
- 与 WMI、文件系统、注册表交互方便
- 经典 ASP 网页的基础
第一个脚本
WScript.Echo "Hello, VBScript!" ' 或保存为 test.vbs 双击运行 MsgBox "Hello, VBScript!"
运行方式
# 命令行 cscript test.vbs # 窗口方式 wscript test.vbs # 直接双击 .vbs 文件
VB 用法
VB 用法
1. 基本语法特点
' 单引号注释 ' 不区分大小写 ' 语句结束不需要分号 Dim name name = "张三" WScript.Echo name
2. 变量声明
Dim x ' 声明变量 Dim a, b, c ' 同时声明多个 Dim s As String ' 显式类型(仅 VBA 支持) x = 100 ' 赋值 ' 变量类型(VBScript 只有 Variant) Dim n n = 42 ' 数值 n = "hello" ' 字符串(可改变) ' 数组 Dim arr(5) ' 下标 0-5,6 个元素 arr(0) = "苹果" arr(1) = "香蕉" ' 动态数组 Dim dyn() ReDim dyn(10) ' 重新分配
3. 常量
Const PI = 3.14159 Const MAX_SIZE = 100 ' 内置常量 vbOKOnly = 0 vbInformation = 64 vbCrLf ' 换行符
4. 输入输出
' 输出到控制台
WScript.Echo "Hello"
' 弹窗
MsgBox "提示信息"
MsgBox "确定继续?", vbYesNo + vbQuestion, "询问"
' 输入框
Dim name
name = InputBox("请输入姓名:", "表单")
WScript.Echo "你好, " & name
5. 运算符
' 算术 5 + 3 ' 8 5 - 3 ' 2 5 * 3 ' 15 5 / 3 ' 1.666... 5 \ 3 ' 1(整除) 5 Mod 3 ' 2(取余) 2 ^ 3 ' 8(幂) ' 比较 = <> < > <= >= ' 逻辑 And Or Not Xor ' 字符串连接 "Hello" & " " & "World"
VB 变量
VB 变量
1. 变量命名规则
' 必须以字母开头 ' 不能包含空格、点、!,&,$,#,@ ' 不能超过 255 个字符 ' 不能与关键字重名(如 Dim, If, For) Dim userName ' 合法 Dim user_name ' 合法 ' Dim 2name ' 非法,数字开头
2. Variant 类型
' VBScript 的变量都是 Variant,可存放任意类型 Dim v v = 100 ' 数字 v = "text" ' 字符串 v = True ' 布尔 v = #2026-08-18# ' 日期 v = Array(1,2,3) ' 数组 ' 判断类型 TypeName(v) ' 返回类型名如 "Integer"/"String" VarType(v) ' 返回类型编号
3. 作用域
' Dim:脚本级/过程级
Dim globalVar
Sub Test()
Dim localVar ' 过程内局部
localVar = 10
globalVar = 99 ' 可访问全局
End Sub
' Public:全局公开(类模块)
Public pubVar
' Private:模块私有
Private priVar
' 强制声明
Option Explicit ' 强制 Dim,未声明报错
4. 生命周期
Dim n
n = 1
n = n + 1 ' 2
' 静态变量(保持值)
Sub Counter()
Static count ' 静态:过程结束不销毁
count = count + 1
WScript.Echo count
End Sub
Counter ' 1
Counter ' 2
Counter ' 3
5. 类型转换函数
CStr(100) ' "100"
CInt("42") ' 42
CLng("123456") ' 长整型
CSng("3.14") ' 单精度
CDbl("3.14159") ' 双精度
CBool("True") ' True
CDate("2026-08-18") ' 日期
CByte("255") ' 字节
' 判断函数
IsNumeric("123") ' True
IsDate("2026-01-01") ' True
IsArray(arr) ' True
IsEmpty(v) ' 是否未初始化
VB 程序
VB 程序
1. 程序结构
' 注释
Option Explicit
' 常量
Const APP_NAME = "MyApp"
' 子程序
Sub Main()
WScript.Echo "程序开始"
DoWork
WScript.Echo "程序结束"
End Sub
' 函数
Function DoWork()
WScript.Echo "工作中..."
End Function
' 入口调用
Main
2. Sub 子程序
' Sub:无返回值
Sub ShowMessage(msg)
WScript.Echo "消息: " & msg
End Sub
' 调用
ShowMessage "你好"
3. Function 函数
' Function:有返回值
Function Add(a, b)
Add = a + b ' 通过函数名返回
End Function
Function GetName()
GetName = "张三"
End Function
' 调用
Dim sum
sum = Add(3, 5)
WScript.Echo sum ' 8
4. 参数传递
' 按引用(默认):修改影响外部
Sub ChangeValue(ByRef x)
x = x + 100
End Sub
' 按值:修改不影响外部
Sub TryChange(ByVal x)
x = x + 100
End Sub
Dim n
n = 10
ChangeValue n ' n = 110
TryChange n ' n 仍为 110
' 可选参数
Sub Greet(name, Optional greeting = "Hello")
WScript.Echo greeting & ", " & name
End Sub
Greet "张三" ' Hello, 张三
Greet "李四", "Hi" ' Hi, 李四
5. 模块与组织
' WScript 宿主对象
WScript.Echo ' 输出
WScript.Quit ' 退出
WScript.Sleep 1000 ' 暂停 1 秒
WScript.Arguments(0) ' 命令行参数
WScript.ScriptName ' 脚本名
' 对象创建
Set fso = CreateObject("Scripting.FileSystemObject")
Set shell = CreateObject("WScript.Shell")
VB 条件
VB 条件
1. If-Then-Else
Dim score
score = 85
If score >= 90 Then
WScript.Echo "优秀"
ElseIf score >= 80 Then
WScript.Echo "良好"
ElseIf score >= 60 Then
WScript.Echo "及格"
Else
WScript.Echo "不及格"
End If
2. 单行 If
' 单行形式 If score >= 60 Then WScript.Echo "通过" ' 单行带 Else If score >= 60 Then WScript.Echo "通过" Else WScript.Echo "未通过"
3. Select Case
Dim grade
grade = "B"
Select Case grade
Case "A"
WScript.Echo "优秀(90+)"
Case "B"
WScript.Echo "良好(80+)"
Case "C"
WScript.Echo "及格(60+)"
Case Else
WScript.Echo "不及格"
End Select
' 多值匹配
Dim fruit
fruit = "苹果"
Select Case fruit
Case "苹果", "香蕉", "橙子"
WScript.Echo "水果"
Case Else
WScript.Echo "其他"
End Select
' 区间匹配
Dim age
age = 25
Select Case age
Case Is < 18
WScript.Echo "未成年"
Case 18 To 60
WScript.Echo "成年"
Case Is > 60
WScript.Echo "老年"
End Select
4. 逻辑条件组合
Dim username, password
username = "admin"
password = "123456"
If username = "admin" And password = "123456" Then
WScript.Echo "登录成功"
ElseIf username <> "admin" Then
WScript.Echo "用户不存在"
Else
WScript.Echo "密码错误"
End If
' 范围判断
Dim temp
temp = 25
If temp > 0 And temp < 35 Then
WScript.Echo "温度适宜"
End If
5. 条件表达式技巧
' 三元模拟
Dim x, result
x = 10
result = IIf(x > 0, "正数", "负数")
WScript.Echo result
' 判空
Dim s
If s = "" Or IsEmpty(s) Then
WScript.Echo "空值"
End If
' 布尔直接判断
Dim ok
ok = True
If ok Then WScript.Echo "为真"
If Not ok Then WScript.Echo "为假"
VB 循环
VB 循环
1. For-Next
' 固定次数循环
For i = 1 To 5
WScript.Echo "第 " & i & " 次"
Next
' 指定步长
For i = 0 To 10 Step 2
WScript.Echo i ' 0,2,4,6,8,10
Next
' 倒序
For i = 5 To 1 Step -1
WScript.Echo i ' 5,4,3,2,1
Next
' 提前退出
For i = 1 To 10
If i = 5 Then Exit For
WScript.Echo i ' 1,2,3,4
Next
2. For Each
' 遍历数组
Dim arr, item
arr = Array("苹果", "香蕉", "橙子")
For Each item In arr
WScript.Echo item
Next
' 遍历集合
Dim fso, folder, file
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\")
For Each file In folder.Files
WScript.Echo file.Name & " - " & file.Size & " 字节"
Next
3. While-Wend
' 条件循环
Dim n
n = 1
While n <= 5
WScript.Echo n
n = n + 1
Wend
4. Do Loop
' Do While(先判断)
Dim i
i = 0
Do While i < 3
WScript.Echo i
i = i + 1
Loop
' Do Until(直到条件为真)
i = 0
Do Until i >= 3
WScript.Echo i
i = i + 1
Loop
' 后判断(至少执行一次)
i = 10
Do
WScript.Echo "执行了一次"
Loop While i < 5
' Exit Do 提前退出
i = 0
Do While True
i = i + 1
If i > 100 Then Exit Do
Loop
5. 循环嵌套
' 打印乘法表
For i = 1 To 9
Dim line
line = ""
For j = 1 To i
line = line & i & "x" & j & "=" & (i * j) & " "
Next
WScript.Echo line
Next
VB 总结
VB 总结
1. 核心知识点回顾
- 变量:Dim 声明,Variant 通用类型,作用域控制
- 流程控制:If/Select Case 条件,For/Do/While 循环
- 过程:Sub 无返回值,Function 有返回值
- 对象:CreateObject 创建 COM 对象
- 错误处理:On Error Resume Next / Err 对象
2. 常用内置函数
' 字符串
Len("hello") ' 5
Left("hello", 2) ' he
Right("hello", 2) ' lo
Mid("hello", 2, 3)' ell
InStr("hello", "ll") ' 3
Replace("a-b-c", "-", "+")
UCase("abc") / LCase("ABC")
Trim(" x ") ' 去空格
Split("a,b,c", ",") ' 数组
' 数学
Abs(-5) ' 5
Int(3.9) ' 3
Fix(-3.9) ' -3
Round(3.14159, 2) ' 3.14
Sqr(16) ' 4
Rnd ' 随机数 0-1
' 日期
Now / Date / Time
Year(Now) / Month(Now) / Day(Now)
Hour(Now) / Minute(Now) / Second(Now)
DateAdd("d", 7, Now) ' 加 7 天
DateDiff("d", d1, d2) ' 天数差
3. 错误处理
On Error Resume Next ' 忽略错误继续
' 危险操作
Dim result
result = 1 / 0 ' 不报错,继续
If Err.Number <> 0 Then
WScript.Echo "错误: " & Err.Description
Err.Clear
End If
On Error GoTo 0 ' 恢复默认错误处理
4. 调试技巧
' 输出调试信息 WScript.Echo "debug: " & var ' 弹窗调试 MsgBox var ' 分步执行 + WScript.Echo 跟踪
5. 进阶方向
- 文件系统操作(FileSystemObject)
- 注册表读写(WScript.Shell)
- WMI 系统管理
- 经典 ASP 网页开发
- HTA 桌面应用
VB 实例
VB 实例
1. 实例:文件批量重命名
Set fso = CreateObject("Scripting.FileSystemObject")
folderPath = "C:\test"
Set folder = fso.GetFolder(folderPath)
For Each file In folder.Files
If LCase(fso.GetExtensionName(file.Name)) = "txt" Then
newName = "backup_" & file.Name
file.Name = newName
WScript.Echo "重命名: " & file.Name & " → " & newName
End If
Next
WScript.Echo "完成!"
2. 实例:文本文件处理
Set fso = CreateObject("Scripting.FileSystemObject")
' 读文件
Set file = fso.OpenTextFile("C:\data.txt", 1) ' 1=读
Do Until file.AtEndOfStream
line = file.ReadLine
If InStr(line, "ERROR") > 0 Then
WScript.Echo "发现错误行: " & line
End If
Loop
file.Close
' 写文件
Set outFile = fso.CreateTextFile("C:\result.txt", True) ' True=覆盖
outFile.WriteLine "处理结果"
outFile.WriteLine "共处理 " & count & " 行"
outFile.Close
3. 实例:系统信息收集
Set shell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
' 获取环境变量
Set env = shell.Environment("SYSTEM")
WScript.Echo "计算机名: " & env("COMPUTERNAME")
WScript.Echo "系统盘: " & env("SystemDrive")
' 磁盘信息
Set drive = fso.GetDrive("C:")
WScript.Echo "C盘总容量: " & drive.TotalSize / 1024 / 1024 / 1024 & " GB"
WScript.Echo "C盘剩余: " & drive.FreeSpace / 1024 / 1024 / 1024 & " GB"
4. 实例:简单计算器
Dim num1, num2, op
num1 = CDbl(InputBox("第一个数:"))
op = InputBox("运算符(+ - * /):")
num2 = CDbl(InputBox("第二个数:"))
Dim result
Select Case op
Case "+": result = num1 + num2
Case "-": result = num1 - num2
Case "*": result = num1 * num2
Case "/":
If num2 = 0 Then
WScript.Echo "不能除 0"
WScript.Quit
End If
result = num1 / num2
Case Else
WScript.Echo "无效运算符"
WScript.Quit
End Select
WScript.Echo num1 & " " & op & " " & num2 & " = " & result
5. 实例:定时提醒
Set shell = CreateObject("WScript.Shell")
Do
WScript.Sleep 60000 ' 每分钟检查一次
currentHour = Hour(Now)
currentMinute = Minute(Now)
If currentHour = 14 And currentMinute = 0 Then
MsgBox "下午 2 点了,该喝水休息啦!", vbInformation, "提醒"
Exit Do
End If
Loop
VB 函数
VB 函数
1. 字符串函数
Dim s
s = "Hello VBScript"
Len(s) ' 14
InStr(s, "VB") ' 7(位置)
InStrRev(s, "e") ' 13(反向找)
Left(s, 5) ' Hello
Right(s, 8) ' VBScript
Mid(s, 7, 2) ' VB
UCase(s) ' HELLO VBSCRIPT
LCase(s) ' hello vbscript
Trim(" x ") ' x
LTrim(" x") ' x
RTrim("x ") ' x
Replace(s, "VBScript", "VB Script")
Space(5) ' 5 个空格
String(3, "*") ' ***
StrReverse(s) ' 反转
Split("a,b,c", ",") ' 数组
Join(Array(1,2), "-") ' "1-2"
Asc("A") ' 65
Chr(65) ' "A"
2. 数学函数
Abs(-10) ' 10 Sgn(-5) ' -1(符号) Int(3.7) ' 3(向下取整) Fix(3.7) ' 3(截断) Round(3.14159, 2) ' 3.14 Sqr(16) ' 4 Exp(1) ' e Log(1) ' 0 Rnd ' 0-1 随机数 Randomize ' 初始化随机种子 Int(Rnd * 100) + 1 ' 1-100 随机整数 FormatNumber(12345.678, 2) ' 12,345.68
3. 日期时间函数
Now ' 当前日期时间
Date ' 当前日期
Time ' 当前时间
Year(Now) ' 2026
Month(Now) ' 8
Day(Now) ' 18
Weekday(Now) ' 星期几(1=周日)
Hour(Now) ' 15
Minute(Now) ' 30
Second(Now) ' 45
DateAdd("d", 30, Now) ' 加 30 天
DateAdd("m", 1, Now) ' 加 1 月
DateAdd("yyyy", 1, Now) ' 加 1 年
DateDiff("d", #2026-01-01#, Now) ' 天数差
DatePart("q", Now) ' 季度
FormatDateTime(Now, 1) ' 长日期格式
FormatDateTime(Now, 4) ' 短时间
4. 类型转换函数
CStr(100) ' "100"
CInt("42.9") ' 43(四舍五入)
CLng("123456") ' 123456
CDbl("3.14159") ' 3.14159
CBool("True") ' True
CDate("2026-08-18") ' 日期
CByte(255) ' 255
Hex(255) ' "FF"(十六进制)
Oct(8) ' "10"(八进制)
Val("123abc") ' 123(取数字部分)
5. 判断与杂项函数
IsNumeric("123") ' True
IsDate("2026-01-01") ' True
IsArray(arr) ' True
IsEmpty(v) ' 是否 Empty
IsNull(v) ' 是否 Null
IsObject(obj) ' 是否对象
TypeName(v) ' 类型名
VarType(v) ' 类型编号
MsgBox / InputBox ' 交互
Array(...) ' 创建数组
CreateObject(...) ' 创建 COM 对象
GetObject(...) ' 获取对象
VB 关键字
VB 关键字
1. 声明关键字
Dim ' 声明变量 Const ' 声明常量 Public ' 公共声明 Private ' 私有声明 Static ' 静态变量 Option Explicit ' 强制声明 Option Compare Text ' 文本比较模式
2. 控制流关键字
If / Then / Else / ElseIf / End If Select / Case / Case Else / End Select For / Next / To / Step For Each / In While / Wend Do / Loop / Until Exit For / Exit Do / Exit Sub / Exit Function
3. 过程关键字
Sub / End Sub ' 子程序 Function / End Function ' 函数 Call ' 调用 ByRef / ByVal ' 参数传递方式 Optional ' 可选参数 ParamArray ' 参数数组 Set / Let ' 对象/值赋值 New ' 创建对象实例
4. 运算关键字
And / Or / Not / Xor ' 逻辑运算 Mod ' 取余 Is ' 对象比较 Like ' 模式匹配 & ' 字符串连接 TypeOf ... Is ' 类型判断
5. 错误处理关键字
On Error Resume Next ' 忽略错误 On Error GoTo 0 ' 默认处理 On Error GoTo label ' 跳转标签 Err ' 错误对象 Err.Number / Err.Description Err.Clear / Err.Raise Resume / Resume Next ' 错误后继续 ' 其他 Rem ' 注释(等价单引号) Class ' 类定义(高级) Property ' 属性(类中) With ... End With ' 对象简化访问
VBScript 实例
VBScript 实例
1. 实例:目录清理工具
Set fso = CreateObject("Scripting.FileSystemObject")
Set shell = CreateObject("WScript.Shell")
' 清理 7 天前的临时文件
target = shell.ExpandEnvironmentStrings("%TEMP%")
cutoff = DateAdd("d", -7, Now)
Set folder = fso.GetFolder(target)
deleted = 0
For Each file In folder.Files
If file.DateLastModified < cutoff Then
file.Delete
deleted = deleted + 1
WScript.Echo "已删除: " & file.Name
End If
Next
WScript.Echo "共清理 " & deleted & " 个文件"
2. 实例:批量创建文件夹
Set fso = CreateObject("Scripting.FileSystemObject")
basePath = "C:\projects"
names = Array("2026-01", "2026-02", "2026-03", "2026-04")
For Each name In names
dirPath = basePath & "\" & name
If Not fso.FolderExists(dirPath) Then
fso.CreateFolder dirPath
WScript.Echo "创建: " & dirPath
Else
WScript.Echo "已存在: " & dirPath
End If
Next
3. 实例:读取注册表
Set shell = CreateObject("WScript.Shell")
' 读取注册表值
On Error Resume Next
version = shell.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName")
If Err.Number = 0 Then
WScript.Echo "系统: " & version
Else
WScript.Echo "读取失败"
Err.Clear
End If
' 写入注册表
shell.RegWrite "HKCU\Software\MyApp\InstallDate", Date, "REG_SZ"
' 删除注册表
shell.RegDelete "HKCU\Software\MyApp\InstallDate"
4. 实例:网络连通性检查
Set shell = CreateObject("WScript.Shell")
' 执行命令并读取输出
Set exec = shell.Exec("ping -n 2 www.baidu.com")
output = exec.StdOut.ReadAll
If InStr(output, "TTL=") > 0 Or InStr(output, "ms") > 0 Then
WScript.Echo "网络正常"
Else
WScript.Echo "网络异常"
End If
5. 实例:Excel 批量处理(通过 VBA 调用)
' VBScript 控制 Excel
Set excel = CreateObject("Excel.Application")
excel.Visible = False
Set wb = excel.Workbooks.Open("C:\data.xlsx")
Set ws = wb.Worksheets(1)
' 读取单元格
WScript.Echo "A1: " & ws.Cells(1, 1).Value
' 写入单元格
ws.Cells(2, 1).Value = "自动写入"
wb.Save
wb.Close
excel.Quit
WScript.Echo "Excel 处理完成"
VBScript 在线实例
VBScript 在线实例
1. 网页中运行 VBScript
VBScript 曾作为浏览器脚本语言(IE 支持),如今主要用于服务器端 ASP 和 Windows 脚本。经典 ASP 中的写法:
<%@ Language="VBScript" %>
<%
' ASP 中运行 VBScript
Dim name
name = Request.Form("username")
Response.Write "你好, " & name
%>
2. HTML 中的 VBScript(IE 时代)
<html>
<body>
<script language="VBScript">
Sub btnClick()
MsgBox "你点击了按钮!"
End Sub
</script>
<input type="button" value="点击我">
</body>
</html>
3. HTA 桌面应用
<!-- test.hta:HTML Application -->
<html>
<head>
<title>HTA 桌面工具</title>
<hta:application id="app" windowstate="normal"/>
</head>
<body>
<script language="VBScript">
Sub ShowInfo()
MsgBox "计算机: " & CreateObject("WScript.Network").ComputerName
End Sub
</script>
<button>显示系统信息</button>
</body>
</html>
4. 快速测试环境
# 本机运行 .vbs cscript test.vbs # 在线学习工具 # VBScript 编辑器 + cscript 即时运行 # 或安装 IIS 跑经典 ASP
5. 练习建议
- 写一个文件批量处理脚本
- 写一个系统信息采集脚本
- 用 HTA 做一个小工具界面
- 在 ASP 中做表单处理
VBScript 参考手册
VBScript 参考手册
1. 内置函数速查
| 类别 | 函数 |
|---|---|
| 字符串 | Len、Left、Right、Mid、InStr、Replace、Split、Join、UCase、LCase、Trim |
| 数学 | Abs、Int、Fix、Round、Sqr、Exp、Log、Rnd、Sgn |
| 日期 | Now、Date、Time、Year、Month、Day、Hour、DateAdd、DateDiff、FormatDateTime |
| 转换 | CStr、CInt、CLng、CDbl、CBool、CDate、Hex、Oct、Val |
| 判断 | IsNumeric、IsDate、IsArray、IsEmpty、IsNull、TypeName、VarType |
| 格式 | FormatNumber、FormatCurrency、FormatPercent |
2. 对象速查
| 对象 | 用途 |
|---|---|
| WScript | 宿主对象:Echo、Sleep、Quit、Arguments |
| WScript.Shell | 运行程序、环境变量、注册表、快捷方式 |
| Scripting.FileSystemObject | 文件/文件夹/驱动器操作 |
| Scripting.Dictionary | 字典(键值对) |
| WScript.Network | 网络与共享信息 |
| WMI(WinMgmts) | 系统管理信息 |
3. 常用语句速查
Dim / Const 声明 If / Select Case 条件 For / For Each / Do / While 循环 Sub / Function 过程 On Error 错误处理 Option Explicit 强制声明 Set 对象赋值 With ... End With 对象访问
4. 常量速查
vbOKOnly=0 vbOKCancel=1 vbYesNo=4 vbInformation=64 vbExclamation=48 vbCritical=16 vbQuestion=32 vbCrLf(回车换行) vbTab(Tab) vbNullChar(空字符) vbMonday=1 ... vbSunday=7
5. 命令行参数
' 运行: cscript test.vbs 参数1 参数2
Dim arg
For Each arg In WScript.Arguments
WScript.Echo "参数: " & arg
Next
' 命名参数
WScript.Arguments.Named("name")
VBScript 教程
VBScript 教程
VBScript(Visual Basic Scripting Edition)是微软的脚本语言,基于 VB 语法,由 Windows 脚本宿主(WScript/CScript)或 ASP 引擎解释执行。
1. 学习总结
- 语法基础:Dim 变量、Variant 类型、If/Select 条件、For/Do 循环
- 过程:Sub 无返回值、Function 有返回值、ByRef/ByVal 参数
- 对象模型:WScript.Shell、FileSystemObject、WMI 等 COM 组件
- 错误处理:On Error Resume Next + Err 对象
2. 典型应用
- Windows 自动化脚本(文件、注册表、任务)
- 系统管理(WMI 查询、服务控制)
- 登录脚本与启动脚本
- 经典 ASP 网页服务端逻辑
- Office 自动化(通过 COM)
3. 安全注意事项
- .vbs 文件是常见病毒载体,不运行来源不明的脚本
- 企业环境建议限制 VBScript 执行策略
- 注册表修改前备份
- 涉及删除操作前二次确认
4. 学习资源
- 微软官方文档(VBScript 语言参考)
- W3CSchool VBScript 教程
- 脚本之家、CSDN 实例代码
5. 现代替代
新项目推荐使用 PowerShell(功能更强、更安全),VBScript 主要用于维护存量系统。
# PowerShell 等价示例
Get-ChildItem C:\temp -Filter *.log |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-7) } |
Remove-Item -Force
VBScript 教程到此结束,掌握其思想后迁移到 PowerShell 会很容易。
第 1 / 14 节