zoukankan      html  css  js  c++  java
  • 初探VBScript

                     初探VBScript

                                            作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

     

    一.VBScript简介 

        VBScript ,Visual Basic Script的简称,是微软公司出品的脚本语言,有时也被缩写为VBS。VBScript是asp动态网页默认的编程语言,配合asp内建对象和ADO对象,用户很快就能掌握访问数据库的asp动态网页开发技术。

      VBScript[2]是微软开发的一种解析型的服务端(也支持客户端)脚本语言,可以看作是VB语言的简化版,与VBA的关系也非常密切。它具有原语言容易学习的特性。目前这种语言广泛应用于网页和ASP程序制作,同时还可以直接作为一个可执行程序。用于调试简单的VB语句非常方便。

      由于VBScript可以通过Windows脚本宿主调用COM,因而可以使用Windows操作系统中可以被使用的程序库,比如它可以使用Microsoft Office的库,尤其是使用MicrosoftAccess和Microsoft SQL Server的程序库,当然它也可以使用其它程序和操作系统本身的库。

    二.VBS的编辑工具

      所谓:工欲善其事,必先利其器,所以在这里我给小伙伴们推荐2款学习VBScript不错的编辑工具,他们分别是VbsEdit与EditPlus,大家可以百度上DOWNLOAD一个即可,可以根据你的风格来选择适合你自己的软件,我个人比较喜欢后者,因为后者支持不仅仅有VBScript这个脚本语言呢,话不多说,您看自己下载体验一下。

    三.VBS的参考文档

      1.《Windows 脚本技术 》,这个是微软官方发布的也是最权威的;

      2.《VBScript程序员参考手册》,这是一个电子版本的,如果对VBS很执着的人建议购买一本书,因为有中文翻译哟!

      3.MSDN Library,可以借助浏览器进行翻译哟~

      4.Google + baidu,利用好搜索工具,2个软件都要配合搜索,因为有的大神博客写的属实很哇塞哦~

    四.VBS数据类型

      对于vbs来说,VBS只有一种数据类型,即可变类型,称为 Variant。

      

    五.VBS变量的定义

    1.变量:

      变量是一种使用方便的占位符,用于引用计算机内存地址,该地址可以存储脚本运行时可更改的程序信息。

    2.变量的声明:

      声明变量的一种方式是使用 Dim 语句、Public 语句和 Private 语句在脚本中显式声明变量。

    3.命名规则:(变量命名必须遵循 VBScript 的标准命名规则。变量命名必须遵循:)

      1>. 字符必须是字母开头,由字母、数字和下划线组成;

      2>. 长度不能超过 255 个字符;

      3>.在被声明的作用域内必须唯一;

      4>.不能为关键字;

    4.VBS变量名称取法

    匈牙利命名法:

      匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=类型+对象描述。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。

    六.常用数据类型缩写

    例如:

      1>.文件路径:strPath

      2>.文件大小:intSize

      3>.几何面积:lngArea

      4>.FSO对象:objFSO

    七.Option Explicit语句

    变量显示定义与隐式定义区别 :

      我们在定义一个变量的时候一般要用dim去制定一个变量名,然后再去给这个变量赋值,这个过程就叫做显示定义;但是我们也可以不用dim去先声明一个变量,我们可以直接给变量去赋值,这种方法叫做隐式定义。两者的区别就是一个是需要声明变量一个不需要声明变量,建议用显示定义方法。

      Option Explicit语句说直白了就是一个报错功能输出信息的提示,我们只需要在文件开头的顶部输出这一行代码,那么你的批处理文件(vbs脚本)在运行出错的时候会输出报错信息,不然的话即使你的脚本出错了,也没有任何报错提示,而是一个空白对话框而已。

    八.VBS的数组

      说道数组还是蛮有意思的,有时候,将多个相关值赋给一个变量更为方便,因此可以创建包含一系列值的变量,称为数组变量。下例声明了一个包含4个元素的一维数组:   

     1 Option Explicit
     2 Dim num(3) 
     3 '虽然括号中显示的数字是 3,但由于在 VBScript 中所有数组都是基于 0 的,所以这个数组实际上包含 4 个元素。在基于 0 的数组中,数组元素的数目总是括号中显示的数目加 1。这种数组被称为固定大小的数组。
     4 '在数组中使用索引为数组的每个元素赋值。从0到3,将数据赋给数组的元素,如下所示: 
     5 num(0) = 1
     6 num(1) = 2
     7 num(2) = 3
     8 num(3) = 4
     9 MsgBox num(0)
    10 MsgBox num(1)
    11 MsgBox num(2)
    12 MsgBox num(3)
    初级数组用法展示

       多维数组:数组并不仅限于一维。数组的维数最大可以为 60(尽管大多数人不能理解超过 3 或 4 的维数)。声明多维数组时用逗号分隔括号中每个表示数组大小的数字。

     1 Option Explicit
     2 Dim num(3,3) '从左往右依次是一维数组和二维数组,我们可以简单的理解成上小学的时候学数学的x,y轴对应的坐标。 
     3 num(0,1) = 100
     4 num(1,2) = 200
     5 num(2,3) = 300
     6 num(3,0) = 400
     7 MsgBox num(0,1)
     8 MsgBox num(1,2)
     9 MsgBox num(2,3)
    10 MsgBox num(3,0)
    二维数组用法展示

      动态数组:即在运行脚本时大小发生变化的数组 。对数组的最初声明使用 Dim 语句或 ReDim 语句。但是对于动态数组,括号中不包含任何数字。

     1 Option Explicit
     2 Dim back_path(),i,str,j
     3 i = 0
     4 str = ""   '表示将“str”定义为字符串类型.
     5 
     6 While str<>"q"  '表示当你输出"q"就退出当前循环,这个退出标识符可以自定义,不一定要跟我设置的一样哟!
     7     ReDim Preserve back_path(i)   '保留原数据不变,重新定义数组
     8     back_path(i) = InputBox("请输出您想备份的路径>>>:")
     9     str = back_path(i)
    10     i = i + 1
    11 Wend
    12 
    13 For j = 0 To i
    14     MsgBox back_path(j)
    15 Next
    多维数组用法展示

    九.常量

      常量:常数是具有一定含义的名称,用于代替数字或字符串,其值从不改变。(最好采用一个命名方案以区分常数和变量。这样可以避免在运行脚本时对常数重新赋值。例如,可以使用“vb”或“con”作常数名的前缀,或将常数名的所有字母大写。将常数和变量区分开可以在开发复杂的脚本时避免混乱。)

     1 Option Explicit
     2 
     3 Rem 以下是定义一个常量
     4 Const PI = 3.1415926
     5 
     6 Rem 什么一个变量
     7 Dim sum
     8 
     9 Rem 表示计算sum的值
    10 sum = 100 * 100* PI
    11 
    12 MsgBox sum  '打印这个sum的值
    13 
    14 
    15 
    16 '友情提示:
    17 '        不建议用"Rem"进行注释,而是建议用" ' "进行注释
    常量的用法展示以及2种注释展示

    十.VBS的常用函数展示

      请参考:http://www.cnblogs.com/yinzhengjie/p/6594356.html

    十一.基本的流程控制语句

    1.分支结构if..then..else..

    1 Dim num_1,num_2,response
    2 num_1 = InputBox("请输入一个数字>>>:") '要求用户输出一个字符串数字
    3 num_2 = InputBox("请再输入一个数字>>>:")
    4 num_1 = cint(num_1) '将字符串转换成数字
    5 num_2 = cint(num_2)
    6 If num_1 > num_2 Then MsgBox num_1 & "大于" & num_2 Else MsgBox num_1 & "小于" & num_2   '比较2个数字的大小,其中这个"&"表示拼接的意思哟
    单行写法展示
     1 Dim num_1,num_2,response
     2 num_1 = InputBox("请输入一个数字>>>:") '要求用户输出一个字符串数字
     3 num_2 = InputBox("请再输入一个数字>>>:")
     4 num_1 = cint(num_1) '将字符串转换成数字
     5 num_2 = cint(num_2)
     6 If num_1 > num_2 Then '定义num_1 > num_2需要执行的代码
     7     MsgBox num_1 & "大于" & num_2 
     8 ElseIf num_1 = num_2 Then   '定义num_1 = num_2需要执行的代码
     9     MsgBox num_1 & "等于" & num_2 
    10 Else  '定义如果上面2个条件都不满足的情况下需要执行的代码
    11     MsgBox num_1 & "小于" & num_2   
    12 End If    '多行写法需要写一个结束标识符。
    多行写法展示
    1 Dim num_1,num_2,response
    2 num_1 = _
    3 InputBox("请输入一个数字>>>:") '其中上面的"_"表示续行符号,续行符后面就不能再输入其他的字符了,一般用是为了方便观看你的代码
    4 num_2 = _ 
    5 InputBox("请再输入一个数字>>>:") 
    6 num_1 = cint(num_1) 
    7 num_2 = cint(num_2)
    8 If num_1 > num_2 Then MsgBox num_1 & "大于" & num_2 : MsgBox "您输入的第一个数字比第二个数字大"  Else  MsgBox num_1 & "不大于" & num_2 '这里主要讲了":"的用法,将2个msgbox函数写成同一行。
    续行符与“:”的应用展示

    2.分支结构select case

     1 Dim num
     2 num = InputBox("请你输入一个数字>>>:")
     3 num = cint(num)
     4 Select Case num '语句开始
     5     Case  100
     6         MsgBox "恭喜您中了三等奖"
     7     Case  200
     8         MsgBox "恭喜您中了二等奖"
     9     Case  300
    10         MsgBox "恭喜您中了一等奖"
    11     Case Else
    12         MsgBox "您获得了阳光普照奖"
    13 End Select '语句结束
    Select Case 用法展示
     1 Dim num
     2 num = InputBox("您猜猜我今年多大>>>:")
     3 num = cint(num)
     4 Select Case True '让这个为真,那么就可以在下面做一个条件判断了
     5     Case   num > 25
     6         MsgBox "哟哟哟,小姐姐你猜大了哦"
     7     Case  num = 25
     8         MsgBox "恭喜您猜对了"
     9     Case  num < 25
    10         MsgBox "哟哟哟,小姐姐你猜小了哦"
    11     Case Else
    12         MsgBox "您获得了阳光普照奖"
    13 End Select 
    Select Case高级用法展示

     3.循环结构for…next

    1 Option Explicit
    2 '@author :yinzhengjie
    3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
    4 'EMAIL:y1053419035@qq.com
    5 
    6 Dim i
    7 For i = 0 To 10 Step 2 '指定步长为2,如果不设置步长“Step 2”的话默认步长为“1”
    8     MsgBox "i = " & i
    9 next
    For 正序用法展示
    1 Option Explicit
    2 '@author :yinzhengjie
    3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
    4 'EMAIL:y1053419035@qq.com
    5 
    6 Dim i
    7 For i = 10 To 0 Step -2 '指定步长为-2,表示每次循环自减去“2”
    8     MsgBox "i = " & i
    9 next
    for 倒序用法展示
     1 Option Explicit
     2 '@author :yinzhengjie
     3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
     4 'EMAIL:y1053419035@qq.com
     5 
     6 Dim i
     7 For i = 1 To 10
     8     MsgBox "i = " & i
     9     If i = 8 Then Exit For '表示当i=8时退出For循环
    10 next
    For的中断用法展示
     1 Option Explicit
     2 '@author :yinzhengjie
     3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
     4 'EMAIL:y1053419035@qq.com
     5 
     6 Dim i,j,k
     7 For i = 1 To 2
     8     For j = 3 To 4
     9         For k = 5 To 6
    10              MsgBox i:MsgBox j:MsgBox k
    11         Next
    12     Next
    13 Next
    For的嵌套用法
    1 Option Explicit
    2 '@author :yinzhengjie
    3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
    4 'EMAIL:y1053419035@qq.com
    5 
    6 Dim i 
    7 For i =0 To 1 Step 0 '让步长为0,就无法到达下一个数字进行循环,当i=0时一直会执行以下代码,即条件为真就好
    8     MsgBox "这是一个死循环"
    9 Next
    如何写一个死循环呢?

    4.循环结构while…wend

     1 Option Explicit
     2 '@author :yinzhengjie
     3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
     4 'EMAIL:y1053419035@qq.com
     5 
     6 Dim i
     7 i = 0
     8 While i < 10 '循环开始
     9     i = i + 1
    10     MsgBox "i = " & i
    11 
    12 Wend '循环结束
    While初级用法
     1 Option Explicit
     2 '@author :yinzhengjie
     3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
     4 'EMAIL:y1053419035@qq.com
     5 
     6 '完美来写一个猜测年龄的小程序吧
     7 Dim num,i
     8 While i < 2
     9 num = InputBox("给你三次机会猜猜我今年多大>>>:")
    10 num = cint(num)
    11     Select Case True  
    12         Case   num > 25
    13             MsgBox "哟哟哟,小姐姐你猜大了哦"
    14               i = i + 1            
    15         Case  num = 25
    16             MsgBox "恭喜您猜对了"
    17             Alert num
    18         Case  num < 25
    19             MsgBox "哟哟哟,小姐姐你猜小了哦"
    20             i = i + 1
    21         Case Else
    22             MsgBox "您获得了阳光普照奖"
    23     i = i + 1
    24 End Select 
    25 Wend 
    while用法案例

    5.循环结构do…loop

     1 Option Explicit
     2 '@author :yinzhengjie
     3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
     4 'EMAIL:y1053419035@qq.com
     5 
     6 Dim i
     7 i = 0
     8 Do While i < 10 
     9     MsgBox "i = " & i
    10     i = i + 1
    11 loop
    Do While ...loop用法展示
     1 Option Explicit
     2 '@author :yinzhengjie
     3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
     4 'EMAIL:y1053419035@qq.com
     5 
     6 Dim i
     7 i = 0
     8 Do Until i >= 10 '等效于while i <10,表示直到i >= 10 不执行以下的代码
     9     MsgBox "i = " & i
    10     i = i + 1
    11 Loop 
    Do Until...Loop用法展示
     1 Option Explicit
     2 '@author :yinzhengjie
     3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
     4 'EMAIL:y1053419035@qq.com
     5 
     6 Dim i
     7 i = 0
     8 Do Until i >= 10 '等效于while i <10,表示直到i >= 10 不执行以下的代码
     9     MsgBox "i = " & i
    10     i = i + 1
    11     If i > 3 Then
    12         Exit Do '退出循环
    13     End If 
    14 Loop 
    退出循环展示
     1 Option Explicit
     2 '@author :yinzhengjie
     3 'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
     4 'EMAIL:y1053419035@qq.com
     5 
     6 Dim i
     7 i = 0
     8 Do while True
     9     MsgBox "这是一个死循环"
    10 Loop 
    如何写一个死循环
  • 相关阅读:
    阿里云 k8s 部署 Spring Cloud Alibaba 微服务实践 (四) 自动化部署
    阿里云 k8s 部署 Spring Cloud Alibaba 微服务实践 (三) 服务观测
    阿里云 k8s 部署 Spring Cloud Alibaba 微服务实践 (二) 部署微服务程序
    阿里云 k8s 部署 Spring Cloud Alibaba 微服务实践 (一) 部署 Nacos
    C++知识点
    libmkl 学习笔记
    基于tesseract-OCR进行中文识别
    poco编译与运行
    Linux下的I/O复用与epoll详解(转载)
    高并发网络编程之epoll详解(转载)
  • 原文地址:https://www.cnblogs.com/yinzhengjie/p/6566277.html
Copyright © 2011-2022 走看看