VBScript基础

声明(创建)VBScript 变量

在 VBScript 创建变量通常指"声明"变量。

您可以通过 Dim、Public 或 Private 语句声明 VBScript 变量。如下所示:

Dim x
Dim carname

现在您已经创建了两个变量。变量的名称是 "x" 和 "carname"。

您也可以在脚本中通过使用它的名称来声明变量。如下所示:

carname="Volvo"

现在您又创建了一个变量。变量的名称是 "carname"。然后,这个做法不是一个好习惯,因为您可能会在脚本中拼错变量名,那样可能会在脚本运行时引起奇怪的结果。

如果您拼错变量名,比如 "carname" 变量错拼为 "carnime",脚本会自动创建一个名为 "carnime" 的新变量。为了防止脚本这样做,您可以使用 Option Explicit 语句。如果您使用这个语句,就必须使用 dim、public 或 private 语句来声明所有的变量。

把 Option Explicit 语句放置于脚本的顶端,如下所示:

Option Explicit
Dim carname
carname=some value

为变量赋值

msgbox"弹框",,"Title"

dim name,age  //声明变量
name = "111" age = 12 //赋值
msgbox name&age
dim a,b,c
a=1
b=2
c=a+b
msgbox c

变量的生存期

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

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

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

VBScript 数组变量

数组变量用于在一个单一的变量中存储多个值。

在下面的实例中,声明了一个包含 3 个元素的数组:

Dim names(2)

括号内显示的数字是 2。数组的下标以 0 开始,因此该数组包含 3 个元素。这是容量固定的数组。您可以为数组的每个元素分配数据,如下所示:

names(0)="Tove"
names(1)="Jani"
names(2)="Stale"

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

mother=names(0)

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

Dim table(4,6)

为二维数组赋值:

Dim x(2,2)
x(0,0)="Volvo"
x(0,1)="BMW"
x(0,2)="Ford"
x(1,0)="Apple"
x(1,1)="Orange"
x(1,2)="Banana"
x(2,0)="Coke"
x(2,1)="Pepsi"
x(2,2)="Sprite"

<!--输入框--> 


dim v,b,s
v=inputbox("请输入第一个乘数")
b=inputbox("请输入第二个乘数")
s=a*b
msgbox "乘积是:"&s

条件语句

  • If stat语句ement - 假如您希望在条件为 true 时执行一系列的代码,可以使用这个语句
  • If...Then...Else 语句 - 假如您希望执行两套代码其中之一,可以使用这个语句
  • If...Then...ElseIf 语句 - 假如您希望选择多套代码之一来执行,可以使用这个语句
  • Select Case 语句 - 假如您希望选择多套代码之一来执行,可以使用这个语句
  • <!--if语句-->

    If a < 0 Then
    MsgBox("a<0")
    ElseIf a > 0 And a < 100 Then
    MsgBox("a>0 and a<100")
    Else
    MsgBox("a>100")
    End If
    <!--猜数字游戏-->
    dim a'变量     //单引号表示注释的意思
    randomize'初始化随机函数
    dim a = int(ran*10)'随机0-10
    do'循环语句
    dim b = inputbox("猜个数字吧")
    if int(b)>a then
    msgbox"大了"
    elseif int(b)>a then
    msgbox"小了"
    else
    msgbox"可以,对了"
    exit do’退出循环
    end if'结束判断 
    loop 

    <!--无限弹框-->

    dim WS,I
    set WS = WScript.CreateObject("WScript.shell")'创建对象
    for I = 1 To 10'执行10次
    WS.Run "mshta.exe VBScript:MsgBox(""拒接访问C:\"",64,""Windows警告"")(Close)",0'运行程序
    Next
    

    Select Case

    dim d=weekday(date)
    Select Case d
    Case 1
        msgbox("Sleepy Sunday")
    Case 2
        msgbox("Monday again!")
    Case 3
        msgbox("Just Tuesday!")
    Case 4
        msgbox("Wednesday!")
    Case 5
        msgbox("Thursday...")
    Case 6
        msgbox("Finally Friday!")
    Case else
        msgbox("Super Saturday!!!!")
    End Select

    循环语句

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

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

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

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

    For i=2 To 10 Step 2
    some code
    Next

    如果要递减计数变量,您就必须使用负的 Step 值。并且必须规定小于开始值的结束值。

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

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

    退出 For...Next

    您可以通过 Exit For 关键词退出 For...Next 语句。

    For i=1 To 10
    If i=5 Then Exit For
    some code
    Next

  • For Each...Next 循环

  • Dim cars(2)
    cars(0)="Volvo"
    cars(1)="Saab"
    cars(2)="BMW"
    
    For Each x In cars
    msgbox(x)
    Next

    Do...Loop

    如果你不知道重复多少次,可以使用 Do...Loop 语句。

    Do...Loop 语句重复执行某段代码直到条件是 true 或条件变成 true。

    重复执行代码直到条件是 true

    您可以使用 While 关键字来检查 Do... Loop 语句的条件。

    Do While i>10
    some code
    Loop

    如果 i 等于 9,上述循环内的代码将终止执行。

    Do
    some code
    Loop While i>10

    这个循环内的代码将被执行至少一次,即使 i 小于 10。

    重复执行代码直到条件变成 true

    您可以使用 Until 关键字来检查 Do...Loop 语句的条件。

    Do Until i=10
    some code
    Loop

    如果 i 等于 10,上述循环内的代码将终止执行。

    Do
    some code
    Loop Until i=10

    这个循环内的代码将被执行至少一次,即使 i 等于 10。

    退出 Do...Loop

    您可以通过 Exit Do 关键词退出 Do...Loop 语句。

    Do Until i=10
    i=i-1
    If i<10 Then Exit Do
    Loop

    这个循环内的代码,只要 i 不为 10 且 i 大于 10 时都将被执行。

发布了88 篇原创文章 · 获赞 383 · 访问量 10万+

猜你喜欢

转载自blog.csdn.net/weixin_42047611/article/details/99538060