ZetCode

VBScript 变量

最后修改于 2025 年 4 月 4 日

VBScript 中的变量是存储数据值的基本元素。与强类型语言不同,VBScript 使用变体变量,它可以容纳任何数据类型。变量使用 Dim 语句声明,并可以使用等号 (=) 运算符赋值。本教程通过实际示例涵盖 VBScript 变量。

VBScript 变量概述

VBScript 中的变量是用于存储数据值的容器。它们使用 Dim 语句创建,可以容纳不同类型的数据。变量名必须以字母开头,不能包含空格或特殊字符。VBScript 不区分大小写,因此 myVar 和 MYVAR 指的是同一个变量。

除非在过程内部声明,否则 VBScript 中的变量默认具有全局作用域。变量的生命周期取决于其作用域。理解变量声明和作用域对于编写有效的脚本至关重要。我们将在以下各节通过实际示例探讨这些概念。

基本变量声明和赋值

在 VBScript 中使用变量最简单的方法是使用 Dim 声明它们并为其赋值。变量可以存储数字、字符串、日期或其他数据类型。VBScript 会根据值自动确定适当的数据类型。

basic_variables.vbs
Dim name, age, isStudent
name = "John Doe"
age = 25
isStudent = True

WScript.Echo "Name: " & name
WScript.Echo "Age: " & age
WScript.Echo "Is student: " & isStudent

此示例演示了基本的变量声明和赋值。声明并初始化了三个不同类型的变量。WScript.Echo 方法显示了它们的值。请注意,VBScript 如何处理不同数据类型而无需显式类型声明。

变量连接

VBScript 允许使用和号 (&) 运算符连接变量和字符串。这对于构建输出消息或组合字符串值特别有用。数字值在连接过程中会自动转换为字符串。

concatenation.vbs
Dim firstName, lastName, fullName, age, message
firstName = "Alice"
lastName = "Smith"
age = 30

fullName = firstName & " " & lastName
message = fullName & " is " & age & " years old."

WScript.Echo message

此示例显示了带有变量的字符串连接。fullName 变量将 firstName 和 lastName 与空格组合。message 变量通过组合字符串和数字值来构建一个完整的句子。输出显示了连接后的结果。

变量作用域

根据声明位置的不同,VBScript 中的变量可以具有不同的作用域。在过程外部声明的变量具有脚本级作用域。在过程内部声明的变量具有过程级作用域,并且只能在该过程内访问。

variable_scope.vbs
Dim globalVar  ' Script-level variable
globalVar = "I'm global"

Sub TestScope
    Dim localVar  ' Procedure-level variable
    localVar = "I'm local"
    WScript.Echo "Inside procedure: " & globalVar & ", " & localVar
End Sub

TestScope
WScript.Echo "Outside procedure: " & globalVar
' WScript.Echo localVar  ' This would cause an error

此示例演示了变量作用域的差异。globalVar 在整个脚本中都可以访问,而 localVar 仅在 TestScope 过程内部可用。尝试在过程外部访问 localVar 将导致错误。

更改变量值

VBScript 中的变量可以在脚本的任何点更改其值。新值可以是不同的数据类型,因为 VBScript 变量是变体类型。这种灵活性可能很强大,但需要仔细管理。

changing_values.vbs
Dim dynamicVar
dynamicVar = 10
WScript.Echo "Initial value: " & dynamicVar & " (" & TypeName(dynamicVar) & ")"

dynamicVar = "Now I'm a string"
WScript.Echo "New value: " & dynamicVar & " (" & TypeName(dynamicVar) & ")"

dynamicVar = #4/15/2025#
WScript.Echo "Final value: " & dynamicVar & " (" & TypeName(dynamicVar) & ")"

此示例显示了变量的值和类型如何在执行过程中发生变化。TypeName 函数显示了变量的当前子类型。同一个变量从 Integer 转换为 String 再转换为 Date,展示了 VBScript 在变量类型方面的灵活性。

常量与变量

VBScript 支持常量和变量。常量使用 Const 关键字声明,声明后不能更改。它们对于在脚本执行期间应保持固定的值很有用。

constants.vbs
Const PI = 3.14159
Const COMPANY_NAME = "ACME Corp"
Dim radius, area

radius = 5
area = PI * radius * radius

WScript.Echo COMPANY_NAME & " presents:"
WScript.Echo "Area of circle with radius " & radius & " is " & area

此示例对比了常量和变量。PI 和 COMPANY_NAME 是不变的常量,而 radius 和 area 是变量。常量提高了代码的可读性,并防止了重要值的意外修改。脚本使用这些元素计算圆的面积。

来源

VBScript 变量文档

在本文中,我们探讨了 VBScript 变量的基础知识,深入研究了它们的声明、赋值和用法。从理解基本的变量操作到了解它们如何在实际示例中使用,我们涵盖了帮助您有效使用 VBScript 的关键概念。有了这些知识,您现在就可以自信地处理脚本项目中的变量了。

作者

我的名字是 Jan Bodnar,我是一名充满激情的程序员,拥有多年的编程经验。我从 2007 年开始撰写编程文章。到目前为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面有八年以上的经验。

列出所有 VBScript 教程