VBScript学习笔记

什么是VBScript?

  • VBScript 是一种脚本语言
  • 脚本语言是一种轻量级的编程语言
  • VBScript 是微软的编程语言 Visual Basic 的轻量级的版本

变量名称的规则:

  • 必须以字母开头
  • 不能包含点号 (.)
  • 不能超过 255 个字符

变量声明

可以使用 Dim、Public 或 Private 语句来声明变量

dim name
name=some value

也可以通过使用其名称来创建变量

name=some value

不过,后面这样的做法不是一种好习惯,这是因为您可能会在脚本中拼错变量名,那样可能会在脚本运行时引起奇怪的结果。比如,当您把 "name" 变量错拼为 "nime" 时,脚本会自动创建一个名为 "nime" 的变量。为了防止脚本这样做,您可以使用 Option Explicit 语句。如果您使用这个语句,就必须使用 dim、public 或 private 语句来声明所有的变量。把 Option Explicit 语句放置于脚本的顶端,这像这样:

option explicit
dim name
name=some value

变量的生存期

变量的生存期指的是它可以存在的时长。

在一个子程序中声明变量后,变量只能在此程序内进行访问。当退出此程序时,变量也会失效。这样的变量称为本地变量。 可以在不同的子程序中使用名称相同的本地变量,因为每个变量只能在声明它的程序内得到识别。

如果在子程序以外声明了一个变量,页面上的所有子程序都可以访问访问它。这类变量的生存期始于它们被声明,止于页面被关闭。

数组变量

数组变量的声明使用变量名后跟一个括号()。在下面的例子中,创建了一个包含三个元素的数组:

dim names(2)

括号中的数字是 2。数组的下标以 0 开始,因为此数组包含三个元素。这是容量固定的数组。

names(0)="George"
names(1)="John"
names(2)="Thomas" 

同样地,通过使用特定数组元素的下标号,我们也可以取回任何元素的值。比如:

father=names(0)

可以在一个数组中使用多达 60 个维数。声明多维数组的方法是在括号中用逗号来分隔数字。比如,我们声明了一个包含 5 行 7 列的 2 维数组:

dim table(4, 6)

VBScript 程序

我们可使用两种程序:子程序和函数程序。

子程序:

  • 是一系列的语句,被封装在 Sub 和 End Sub 语句内。
  • 可执行某些操作,但不会返回值。
  • 可带有通过程序调用来向子程序传递参数。
  • 如果没有,必须带有空的圆括号
Sub mysub()
 some statements
End Sub
Sub mysub(argument1,argument2)
 some statements
End Sub

函数程序:

  • 是一系列的语句,被封装在 Function 和 End Function 语句内。
  • 可执行某些操作并返回值。
  • 可带有通过程序调用来向其传递参数。
  • 如果没有,必须带有空的圆括号
  • 通过向函数程序名赋值的方式,可使其返回值。
Function myfunction()
 some statements
 myfunction=some value
End Function
Function myfunction(argument1,argument2)
 some statements
 myfunction=some value
End Function

调用子程序或函数程序

可以这样调用某个函数:

name = findname()

此函数名为 "findname",函数会返回一个值,这个值会存储于变量 "name" 中。

或者可以这样做:

msgbox "Your name is " & findname()

我们通过调用了名为 "findname" 的函数,这个函数返回的值会显示在消息框中。

可以这样调用子程序:

Call MyProc(argument)

或者,也可以省略 Call 语句:

MyProc argument

If....Then.....Else

在下面的情况中,使用 If...Then...Else 语句:

  • 在条件为 true 时,执行某段代码
  • 选择两段代码之一来执行时

如果需要在条件为 true 时只执行一行语句,可以把代码写为一行:

if i=10 Then msgbox "Hello"

在上面的代码中,没有 .else.. 语句。我们仅仅让代码在条件为 true 时执行一项操作(当 i 为 10 时)。

假如我们需要在条件为 true 时执行不止一条语句,那么就必须在一行写一条语句,然后使用关键词 "End If" 来结束这个语句:

if i=10 Then
   msgbox "Hello"
   i = i+1
end If

在上面的代码中,同样没有 .else.. 语句。我们仅仅让代码在条件为 true 时执行了多项操作。

假如我们希望在条件为 true 时执行某条语句,并当条件不为 true 时执行另一条语句,就必须添加关键词 "Else":

if i=10 then
   msgbox "Hello"
else
   msgbox "Goodbye"
end If

当条件为 true 时会执行第一段代码,当条件不成立时执行第二段代码(当 i 不等于 10 时)。

If....Then.....Elseif

假如你希望选择多套代码之一来执行,可以使用if...then...elseif语句:

if payment="Cash" then
   msgbox "You are going to pay cash!"
 elseif payment="Visa" then
   msgbox "You are going to pay with visa."
 elseif payment="AmEx" then
   msgbox "You are going to pay with American Express."
 else
   msgbox "Unknown method of payment."
end If

Select Case

假如你希望选择多套代码之一来执行,可以使用 SELECT 语句:

select case payment
 case "Cash"
   msgbox "You are going to pay cash"
 case "Visa"
   msgbox "You are going to pay with visa"
 case "AmEx"
   msgbox "You are going to pay with American Express"
 case Else
   msgbox "Unknown method of payment"
end select

以上代码的工作原理:首先,我们需要一个简单的表达式(常常是一个变量),并且这个表达式会被做一次求值运算。然后,表达式的值会与每个 case 中的值作比较,如果匹配,被匹配的 case 所对应的代码会被执行。

Looping 语句

经常地,当编写代码时,我们希望将一段代码执行若干次。我们可以在代码中使用循环语句来完成这项工作。

在 VBScript 中,我们可以使用四种循环语句:

For...Next 语句
运行一段语句指定的次数
For Each...Next 语句
针对集合中的每个项目或者数组中的每个元素来运行某段语句。
Do...Loop 语句
运行循环,当条件为 true 或者直到条件为 true 时。
While...Wend 语句
不要使用这个语句 - 请使用 Do...Loop 语句代替它。

For...Next 循环

如果已经确定需要重复执行代码的次数,那么可以使用 For...Next 语句来运行这段代码。

我们可以使用一个计数器变量,这个变量会随着每次循环递增或递减,例如这样:

For i=1 to 10
  some code
Next

For 语句规定计数变量以及它的开始值和结束值。

Next 语句会以 1 作为步进值来递增变量i。

Step 关键词

通过使用 Step 关键词,我们可以规定计数变量递增或递减的步进值。

在下面的例子中,计数变量i每次循环的递增步进值为 2。

For i=2 To 10 Step 2
  some code
Next

如果要递减计数变量,就必须负的步进值。并且需要规定小于开始值的结束值。

在下面的例子中,计数变量i每次循环的递减步进值为 2。

For i=10 To 2 Step -2
  some code
Next

退出 For...Next

如需退出 For...Next 语句,可以使用 Exit 关键词。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章