初探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个元素的一维数组:   

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

初级数组用法展示

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

 Option Explicit
Dim num(,) '从左往右依次是一维数组和二维数组,我们可以简单的理解成上小学的时候学数学的x,y轴对应的坐标。
num(,) =
num(,) =
num(,) =
num(,) =
MsgBox num(,)
MsgBox num(,)
MsgBox num(,)
MsgBox num(,)

二维数组用法展示

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

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

多维数组用法展示

九.常量

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

 Option Explicit

 Rem 以下是定义一个常量
Const PI = 3.1415926 Rem 什么一个变量
Dim sum Rem 表示计算sum的值
sum = * * PI MsgBox sum '打印这个sum的值 '友情提示:
' 不建议用"Rem"进行注释,而是建议用" ' "进行注释

常量的用法展示以及2种注释展示

十.VBS的常用函数展示

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

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

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

 Dim num_1,num_2,response
num_1 = InputBox("请输入一个数字>>>:") '要求用户输出一个字符串数字
num_2 = InputBox("请再输入一个数字>>>:")
num_1 = cint(num_1) '将字符串转换成数字
num_2 = cint(num_2)
If num_1 > num_2 Then MsgBox num_1 & "大于" & num_2 Else MsgBox num_1 & "小于" & num_2 '比较2个数字的大小,其中这个"&"表示拼接的意思哟

单行写法展示

 Dim num_1,num_2,response
num_1 = InputBox("请输入一个数字>>>:") '要求用户输出一个字符串数字
num_2 = InputBox("请再输入一个数字>>>:")
num_1 = cint(num_1) '将字符串转换成数字
num_2 = cint(num_2)
If num_1 > num_2 Then '定义num_1 > num_2需要执行的代码
MsgBox num_1 & "大于" & num_2
ElseIf num_1 = num_2 Then '定义num_1 = num_2需要执行的代码
MsgBox num_1 & "等于" & num_2
Else '定义如果上面2个条件都不满足的情况下需要执行的代码
MsgBox num_1 & "小于" & num_2
End If '多行写法需要写一个结束标识符。

多行写法展示

 Dim num_1,num_2,response
num_1 = _
InputBox("请输入一个数字>>>:") '其中上面的"_"表示续行符号,续行符后面就不能再输入其他的字符了,一般用是为了方便观看你的代码
num_2 = _
InputBox("请再输入一个数字>>>:")
num_1 = cint(num_1)
num_2 = cint(num_2)
If num_1 > num_2 Then MsgBox num_1 & "大于" & num_2 : MsgBox "您输入的第一个数字比第二个数字大" Else MsgBox num_1 & "不大于" & num_2 '这里主要讲了":"的用法,将2个msgbox函数写成同一行。

续行符与“:”的应用展示

2.分支结构select case

 Dim num
num = InputBox("请你输入一个数字>>>:")
num = cint(num)
Select Case num '语句开始
Case
MsgBox "恭喜您中了三等奖"
Case
MsgBox "恭喜您中了二等奖"
Case
MsgBox "恭喜您中了一等奖"
Case Else
MsgBox "您获得了阳光普照奖"
End Select '语句结束

Select Case 用法展示

 Dim num
num = InputBox("您猜猜我今年多大>>>:")
num = cint(num)
Select Case True '让这个为真,那么就可以在下面做一个条件判断了
Case num >
MsgBox "哟哟哟,小姐姐你猜大了哦"
Case num =
MsgBox "恭喜您猜对了"
Case num <
MsgBox "哟哟哟,小姐姐你猜小了哦"
Case Else
MsgBox "您获得了阳光普照奖"
End Select

Select Case高级用法展示

3.循环结构for…next

 Option Explicit
'@author :yinzhengjie
'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
'EMAIL:y1053419035@qq.com Dim i
For i = To Step '指定步长为2,如果不设置步长“Step 2”的话默认步长为“1”
MsgBox "i = " & i
next

For 正序用法展示

 Option Explicit
'@author :yinzhengjie
'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
'EMAIL:y1053419035@qq.com Dim i
For i = To Step - '指定步长为-2,表示每次循环自减去“2”
MsgBox "i = " & i
next

for 倒序用法展示

 Option Explicit
'@author :yinzhengjie
'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
'EMAIL:y1053419035@qq.com Dim i
For i = To
MsgBox "i = " & i
If i = Then Exit For '表示当i=8时退出For循环
next

For的中断用法展示

 Option Explicit
'@author :yinzhengjie
'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
'EMAIL:y1053419035@qq.com Dim i,j,k
For i = To
For j = To
For k = To
MsgBox i:MsgBox j:MsgBox k
Next
Next
Next

For的嵌套用法

 Option Explicit
'@author :yinzhengjie
'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
'EMAIL:y1053419035@qq.com Dim i
For i = To Step '让步长为0,就无法到达下一个数字进行循环,当i=0时一直会执行以下代码,即条件为真就好
MsgBox "这是一个死循环"
Next

如何写一个死循环呢?

4.循环结构while…wend

 Option Explicit
'@author :yinzhengjie
'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
'EMAIL:y1053419035@qq.com Dim i
i =
While i < '循环开始
i = i +
MsgBox "i = " & i Wend '循环结束

While初级用法

 Option Explicit
'@author :yinzhengjie
'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
'EMAIL:y1053419035@qq.com '完美来写一个猜测年龄的小程序吧
Dim num,i
While i <
num = InputBox("给你三次机会猜猜我今年多大>>>:")
num = cint(num)
Select Case True
Case num >
MsgBox "哟哟哟,小姐姐你猜大了哦"
i = i +
Case num =
MsgBox "恭喜您猜对了"
Alert num
Case num <
MsgBox "哟哟哟,小姐姐你猜小了哦"
i = i +
Case Else
MsgBox "您获得了阳光普照奖"
i = i +
End Select
Wend

while用法案例

5.循环结构do…loop

 Option Explicit
'@author :yinzhengjie
'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
'EMAIL:y1053419035@qq.com Dim i
i =
Do While i <
MsgBox "i = " & i
i = i +
loop

Do While ...loop用法展示

 Option Explicit
'@author :yinzhengjie
'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
'EMAIL:y1053419035@qq.com Dim i
i =
Do Until i >= '等效于while i <10,表示直到i >= 10 不执行以下的代码
MsgBox "i = " & i
i = i +
Loop

Do Until...Loop用法展示

 Option Explicit
'@author :yinzhengjie
'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
'EMAIL:y1053419035@qq.com Dim i
i =
Do Until i >= '等效于while i <10,表示直到i >= 10 不执行以下的代码
MsgBox "i = " & i
i = i +
If i > Then
Exit Do '退出循环
End If
Loop

退出循环展示

 Option Explicit
'@author :yinzhengjie
'blog:http://www.cnblogs.com/yinzhengjie/tag/VBScript/
'EMAIL:y1053419035@qq.com Dim i
i =
Do while True
MsgBox "这是一个死循环"
Loop

如何写一个死循环

初探VBScript的更多相关文章

  1. 初探领域驱动设计(2)Repository在DDD中的应用

    概述 上一篇我们算是粗略的介绍了一下DDD,我们提到了实体.值类型和领域服务,也稍微讲到了DDD中的分层结构.但这只能算是一个很简单的介绍,并且我们在上篇的末尾还留下了一些问题,其中大家讨论比较多的, ...

  2. CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探

    CSharpGL(8)使用3D纹理渲染体数据 (Volume Rendering) 初探 2016-08-13 由于CSharpGL一直在更新,现在这个教程已经不适用最新的代码了.CSharpGL源码 ...

  3. 从273二手车的M站点初探js模块化编程

    前言 这几天在看273M站点时被他们的页面交互方式所吸引,他们的首页是采用三次加载+分页的方式.也就说分为大分页和小分页两种交互.大分页就是通过分页按钮来操作,小分页是通过下拉(向下滑动)时异步加载数 ...

  4. JavaScript学习(一) —— 环境搭建与JavaScript初探

    1.开发环境搭建 本系列教程的开发工具,我们采用HBuilder. 可以去网上下载最新的版本,然后解压一下就能直接用了.学习JavaScript,环境搭建是非常简单的,或者说,只要你有一个浏览器,一个 ...

  5. .NET文件并发与RabbitMQ(初探RabbitMQ)

    本文版权归博客园和作者吴双本人共同所有.欢迎转载,转载和爬虫请注明原文地址:http://www.cnblogs.com/tdws/p/5860668.html 想必MQ这两个字母对于各位前辈们和老司 ...

  6. React Native初探

    前言 很久之前就想研究React Native了,但是一直没有落地的机会,我一直认为一个技术要有落地的场景才有研究的意义,刚好最近迎来了新的APP,在可控的范围内,我们可以在上面做任何想做的事情. P ...

  7. 【手把手教你全文检索】Apache Lucene初探

    PS: 苦学一周全文检索,由原来的搜索小白,到初次涉猎,感觉每门技术都博大精深,其中精髓亦是不可一日而语.那小博猪就简单介绍一下这一周的学习历程,仅供各位程序猿们参考,这其中不涉及任何私密话题,因此也 ...

  8. Key/Value之王Memcached初探:三、Memcached解决Session的分布式存储场景的应用

    一.高可用的Session服务器场景简介 1.1 应用服务器的无状态特性 应用层服务器(这里一般指Web服务器)处理网站应用的业务逻辑,应用的一个最显著的特点是:应用的无状态性. PS:提到无状态特性 ...

  9. NoSQL初探之人人都爱Redis:(3)使用Redis作为消息队列服务场景应用案例

    一.消息队列场景简介 “消息”是在两台计算机间传送的数据单位.消息可以非常简单,例如只包含文本字符串:也可以更复杂,可能包含嵌入对象.消息被发送到队列中,“消息队列”是在消息的传输过程中保存消息的容器 ...

随机推荐

  1. Git学习笔记 第二章

    文件相关操作 修改readme.txt文件,执行 git status 命令查看当前仓库状态 git status 位于分支 master 尚未暂存以备提交的变更: (使用 "git add ...

  2. JS对象复制(深拷贝、浅拷贝)

    如何在 JS 中复制对象 在本文中,我们将从浅拷贝(shallow copy)和深拷贝(deep copy)两个方面,介绍多种 JS 中复制对象的方法. 在开始之前,有一些基础知识值得一提:Javas ...

  3. MySQL 单表优化

    一.表字段优化 1.整数类型尽量使用 TINYINT.SMALLINT.MEDIUM_INT 而不是INT,非负数要加上UNSIGNED 2.VARCHAR的长度分配要合理,不要过大 3.时间字段不超 ...

  4. Estimating the number of receiving nodes in 802.11 networks via machine learning

    来源:IEEE International Conference on Communications 作者:Matteo Maria 年份:2016 摘要: 现如今很多移动设备都配有多个无线接口,比如 ...

  5. PAT 1036 跟奥巴马一起编程

    https://pintia.cn/problem-sets/994805260223102976/problems/994805285812551680 美国总统奥巴马不仅呼吁所有人都学习编程,甚至 ...

  6. Linux 忘记root密码

    1 将系统重启,读秒的时候按下任意键就会出现如下图菜单界面 2 进入上图菜单界面之后,按e键就可以进入grub的编辑模式 3 选择第二行 kernel开头,再按 e 键进入该行的编辑界面中,然后在出现 ...

  7. 批处理-For详解

    大纲 一 前言 二 for语句的基本用法 三 for /f (delims.tokens.skip.eol.userbackq.变量延迟) 四 for /r (递归遍历) 五 for /d (遍历目录 ...

  8. [转帖]Linux内核为大规模支持100Gb/s网卡准备好了吗?并没有

    Linux内核为大规模支持100Gb/s网卡准备好了吗?并没有 之前用 千兆的机器 下载速度 一般只能到 50MB 左右 没法更高 万兆的话 可能也就是 200MB左右的速度 很难更高 不知道后续的服 ...

  9. 日常工作: 应用服务器Oracle驱动问题说明

    1. .net使用Oracle驱动的发展等 作为.net线的产品的ERP产品 最初的版本 使用了.net 1.1发布时 微软提供的Oracle的驱动 但是后续微软的.net产品线貌似没有继续发展相应的 ...

  10. MES模块

    基础数据管理:产品模型.工厂模型.工艺模型 仓储管理 成本管理 绩效管理 看板管理 日志管理 设备管理:工装管理.设计器具管理.设备保养管理.设备备件管理.设备采集管理.设备点检管理.设备故障管理.设 ...