VBS 是一种 Windows 脚本,它的全称是 Microsoft Visual Basic Script Editon( 微软公司可视化 BASIC 脚本版 ) , VBS 是 Visual Basic 的的一个抽象子集,是系统内置的,用它编写的脚本代码不能编译成二进制文件,直接由 Windows 系统执行,也就是一个叫做宿主 host 的解释源代码并执行,高效、易学,且大部分高级语言能干的事情,它基本上都具备,它可以使各种各样的任务自动化,可以使你从重复琐碎的工作中解脱出来,极大的提高工作效率。
VBS 脚本可以理解为其实就是一种计算机编程语言,但是由于缺少计算机程序设计语言中的部分要素,对于事件的描述能力较弱,所以称为脚本,它最方便的地方就是提供了对 COM 对象的简便支持。那么什么是 COM 对象呢?
COM 对象就是一些具有特定函数功能项程序模块,他们一般以 ocx 或者 dll 作为扩展名,只要找到包含有所需功能的模块文件,并在脚本中规范的引用,就可以实现特定的功能,也就是说 VBS 脚本就是调用现成的“控件”作为对象,用对象的属性和方法实现目的,完全免去了编写代码、设计算法等等麻烦。说白了,就是利用诸多的黑匣子,前提是了解黑匣子的接口。
最方便的是它甚至不需要专门的开发环境,在计算机中,只要有 notepad ,就可以编写 VBS 脚本了,并且可以直接执行。
一、变量
1 、所有单引号后面的内容都被解释为注释。
2 、在 VBScript 中,变量的命名规则遵循标准的命名规则,需要注意的是:在 VBScript 中对变量、方法、函数和对象的引用是不区分大小写的。在申明变量时,要显式地申明一个变量,需要使用关键字 Dim 来告诉 VBScript 你要创建一个变量,并将变量名称跟在其后。申明多个同类型变量,可以用逗号分隔。注意: VBScript 中不允许在申明变量的时候同时给变量赋值。但是允许在一行代码内同时对两个变量进行赋值,中间用冒号分隔。
3 、你可以使用 Option Explicit 来告诉宿主变量必须先声明后使用。
4 、 VBScript 在定义时只有一种变量类型,在实际使用中需要使用类型转换函数来将变量转换成相应的变量类型。
CBool 函数将变量转换成布尔值;
CByte 函数将变量转换为 0 到 255 之间的整数;
CCur 函数、 CDbl 函数和 CSng 函数将变量转换为浮点数值,前者只精确到小数点后四位,后两者要更加精确,数值的范围也要大的多;
CDate 函数将变量转换为日期值;
CInt 函数和 Clng 函数将变量转换为整数,后者的范围比前者要大的多;
CStr 函数将变量转换为字符串。
二、数组
数组的定义与变量非常类似,只需要在变量后描述这个数组的个数和维数。需要注意的是:数组的下标总是从 0 开始,而以数组定义中数值减一结束。也就是说你以要定义一个有十个数据的数组,将这样书写代码: dim array ( 9 ),同样,当你要访问第五个元素时,实际的代码是 array(4) 。当然,你可以通过不指定数组的个数和维数来申明动态数组。等到数组的个数和维数固定后,使用关键字 redim 来改变数组。注意,在改变数组的大小时,数组的数据会被破坏,使用关键字 preserve 来保护数据。例如:Redim 空格 preserve 空格 array 括号个数逗号维数括号
三、操作符
在 VBScript 运算符中,加减乘除都是我们常用的符号,乘方使用的是 ^ ,取模使用的 Mod 。
在比较操作符中,等于、小于、大于、小于等于、大于等于都与我们常用的符号是一致的,而不等于是小于和大于连用。
逻辑运算符为:和操作— >AND 非操作— >NOT 或操作— >OR ;
你可以使用操作符 + 和操作符 & 来连接字符串,一般使用 & 操作符;
另外还有一个比较特殊的操作符 Is 用来比较对象,例如按钮对象,如果对象是同一类型,结果就是真,如果对象不是同一类型,结果就是假。
四、条件语句主要有 if …… then 语句和 select case 语句两种形式
在 if …… then 语句中,其基本形式为:
If 条件 then
‘处理条件的语句
Else
‘处理不满足条件的语句
Endif
如果还有更多的条件需要验证,则需要添加语句
Elseif 条件 then
‘处理条件语句
在 select case 语句中,其基本形式为:
Select case 变量
Case 条件值一
‘处理条件一语句
Case 条件值二
‘处理条件二语句
case else
‘处理语句
End select
注意:在执行字符串比较时,需要特别注意大小写,一般情况下,我们在比较前,使用 lcase 函数将字符串转换成小写,使用 ucase 函数将字符串转换成大写。
五、循环控制语句
循环控制语句有 for …… next 循环、 for …… each 循环、 do …… while 循环、 do …… until 循环、 while 循环五种形式。
在使用循环控制语句前,首先要对循环条件进行判断,如果循环次数是有固定次数的,那么使用 For …… next 循环,其结构为:
For 计数器变量=开始计数值 to 最后计数值
‘执行循环体
Next
如果是需要对数组或对象集合中的每一个元素进行判断,则需要使用 for …… each 循环,其结构为:
For each 循环计数变量 in 要查看的对象或数组
‘执行处理语句
Next
注意:在上述两种循环中随时可以使用 exit for 来退出循环。
如果你希望在条件满足时执行一段代码则使用 do …… while 语句,结构为:
Do while 条件
‘执行循环体
Loop
如果你希望在条件不满足时执行代码,则使用 do …… until 语句,结构为:
Do until 条件
‘执行循环体
Loop
当然,在这两种循环语句中,你可以使用 exit do 来退出循环
最后一种循环语句是条件满足时一直执行循环,
While 条件
‘执行循环体
Wend
六、使用过程
常用的过程有两种,一种为函数,给调用者返回值,一种为子程序,无返回值,还有一种叫事件的特殊子程序,用的比较少。
函数的基本定义方法为:
Function 函数名称(参数列表)
‘函数代码
‘函数名称=某值 ‘用来返回值
end function
子程序类似,不过没有返回值。
注意:尽管在定义子程序的时候,参数列表要加括号,但在调用子程序的时候,参数列表不加括号,括号只在函数中使用。另外,子程序不能在表达式中使用。
而函数只能出现在赋值语句的右边,或者表达式中,函数不能直接使用,如果必须直接使用函数,则必须使用 call 语句调用,并取消返回值。