目录
1. 变量概述
在 VBScript 中,变量用于存储信息,可以存储不同类型的数据。VBScript 是动态类型语言,意味着你不需要指定变量的数据类型,VBScript 会根据赋值的内容自动确定变量类型。VBScript 中所有变量都是 Variant 类型,它可以存储数字、字符串、布尔值等数据类型。
2. 声明变量
2.1 声明变量
VBScript 中使用 Dim
关键字声明变量,Dim
是 “Dimension”(维度)的缩写。可以声明多个变量,也可以单独声明每个变量。
Dim x, y, message ' 声明多个变量
Dim result ' 声明单个变量
2.2 默认变量类型
- Variant:VBScript 中默认的数据类型,表示可以存储任何类型的数据。
2.3 变量赋值
Dim message
message = "Hello, World!" ' 给变量赋值
3. 变量类型
虽然 VBScript 的所有变量都是 Variant 类型,但它可以存储不同的数据类型,常见的数据类型包括:
3.1 数字类型
- 整数:VBScript 会自动判断数字的类型,默认为 Double 类型(双精度浮点数)。
Dim num
num = 100 ' 自动识别为 Double 类型
- 浮点数:数字也可以是小数类型。
Dim num
num = 3.14 ' 默认类型为 Double
3.2 字符串类型
字符串用于存储文本数据。
Dim str
str = "Hello, VBScript!" ' 字符串类型
3.3 布尔类型
布尔值只能是 True
或 False
。
Dim isValid
isValid = True
3.4 日期类型
VBScript 中有内置的 Date 类型,可以存储日期和时间。
Dim currentDate
currentDate = Now ' 获取当前日期和时间
4. 变量赋值与使用
4.1 赋值
在 VBScript 中,使用 =
赋值给变量:
Dim num
num = 5 ' 赋值操作
4.2 读取变量
可以直接引用变量进行计算或在输出中显示:
Dim x, y
x = 10
y = 20
MsgBox x + y ' 输出 30
4.3 多重赋值
VBScript 支持一次性给多个变量赋值:
Dim a, b, c
a = b = c = 10 ' 给 a, b, c 赋相同的值
5. 常用数据类型转换
由于 VBScript 的变量是 Variant 类型,因此需要在某些情况下进行显式类型转换。常用的数据类型转换函数包括:
5.1 CInt(转换为整数)
Dim num
num = "10"
num = CInt(num) ' 转换为整数
5.2 CDbl(转换为双精度浮点数)
Dim num
num = "3.14"
num = CDbl(num) ' 转换为浮点数
5.3 CStr(转换为字符串)
Dim num
num = 123
num = CStr(num) ' 转换为字符串
5.4 CDate(转换为日期)
Dim dateStr
dateStr = "2025-03-31"
dateStr = CDate(dateStr) ' 转换为日期类型
5.5 CBool(转换为布尔值)
Dim flag
flag = CBool(1) ' 转换为 True
flag = CBool(0) ' 转换为 False
6. 常见的变量操作
6.1 字符串连接
VBScript 使用 &
运算符连接字符串:
Dim firstName, lastName
firstName = "John"
lastName = "Doe"
MsgBox firstName & " " & lastName ' 输出 "John Doe"
6.2 计算表达式
Dim a, b, sum
a = 10
b = 20
sum = a + b ' 计算结果并赋值给 sum
MsgBox sum ' 输出 30
6.3 获取字符串长度
使用 Len
函数获取字符串的长度:
Dim str
str = "VBScript"
MsgBox Len(str) ' 输出 8
7. 作用域与生命周期
7.1 局部变量与全局变量
- 局部变量:在
Sub
或Function
内声明,只在该过程内有效。 - 全局变量:在脚本的开头声明,整个脚本都可以访问。
7.2 作用域示例
Dim globalVar
globalVar = "Global"
Sub TestScope()
Dim localVar
localVar = "Local"
MsgBox globalVar ' 可以访问全局变量
MsgBox localVar ' 可以访问局部变量
End Sub
TestScope()
MsgBox globalVar ' 仍然可以访问全局变量
' MsgBox localVar ' 错误:localVar 只在 TestScope 内有效
发表回复