VBScript 函数
最后修改于 2025 年 2 月 19 日
在本文中,我们将学习如何在 VBScript 中创建和使用函数。函数是执行特定任务的可重用代码块。它们有助于组织代码并使其更易于维护。我们将使用 WScript.Echo 输出结果,并使用 cscript 运行脚本。
简单函数
第一个示例演示了如何创建一个简单的函数。
simple_function.vbs
Function Greet(name)
Greet = "Hello, " & name & "!"
End Function
WScript.Echo Greet("John")
此示例定义了一个名为 Greet 的函数,该函数接受一个参数 name 并返回一个问候消息。
带多个参数的函数
函数可以接受多个参数。
multi_param_function.vbs
Function Add(a, b)
Add = a + b
End Function
WScript.Echo "Sum: " & Add(5, 3)
此示例定义了一个名为 Add 的函数,该函数接受两个参数并返回它们的和。
带可选参数的函数
VBScript 不支持真正的可选参数。以下是实现类似功能的变通方法。
optional_param_function.vbs
Function Multiply(a, b)
If IsEmpty(b) Then
Multiply = a * 2
Else
Multiply = a * b
End If
End Function
' Calling the function with one argument
WScript.Echo "Result: " & Multiply(5, Empty)
' Calling the function with two arguments
WScript.Echo "Result: " & Multiply(5, 3)
此示例定义了一个名为 Multiply 的函数,其中包含一个可选参数 b。如果省略 b,则将 a 乘以 2。
递归函数
函数可以调用自身,这称为递归。
recursive_function.vbs
Function Factorial(n)
If n <= 1 Then
Factorial = 1
Else
Factorial = n * Factorial(n - 1)
End If
End Function
WScript.Echo "Factorial of 5: " & Factorial(5)
此示例使用递归计算数字的阶乘。
返回数组的函数
函数可以返回数组。
array_function.vbs
Function GetNumbers()
Dim nums(2)
nums(0) = 10
nums(1) = 20
nums(2) = 30
GetNumbers = nums
End Function
Dim result
result = GetNumbers()
WScript.Echo "Second number: " & result(1)
此示例定义了一个名为 GetNumbers 的函数,该函数返回一个数组。
带 ByRef 参数的函数
VBScript 允许使用 ByRef 按引用传递参数。
byref_function.vbs
Function Square(ByRef num)
num = num * num
End Function
Dim x
x = 5
Square x
WScript.Echo "Square: " & x
此示例定义了一个名为 Square 的函数,该函数会修改按引用传递的参数的值。
Function Square(ByRef num)
num = num * num
End Function
我们为参数使用了 ByRef 关键字。
Square x
此外,我们必须在不带括号的情况下调用该函数。
在本文中,我们探讨了如何在 VBScript 中创建和使用函数。我们介绍了简单函数、带多个参数的函数、可选参数、递归函数、返回数组的函数以及带 ByRef 参数的函数。函数对于编写 VBScript 中模块化和可重用的代码至关重要。