VBScript脚本语言讲义
- 格式:doc
- 大小:199.00 KB
- 文档页数:24
vbs 教程VBScript(Visual Basic Script)是一种微软开发的脚本语言,可以用于编写简单的脚本程序。
本教程将介绍VBScript的基本语法以及常用的功能。
1. 注释在VBScript中,可以使用单引号(')来添加注释。
注释是不会被程序执行的内容,通常用于解释代码的作用或者提醒自己以后查看代码时的用途。
示例:```' 这是一个注释MsgBox "Hello, World!"```2. 变量变量用于存储和操作数据。
在VBScript中,变量由一个名称和一个值组成。
变量的名称是由字母、数字和下划线组成的,不能以数字开头。
示例:```Dim name ' 声明一个变量name = "John" ' 给变量赋值MsgBox "Hello, " & name & "!" ' 输出变量的值```3. 数据类型VBScript支持多种数据类型,包括整数(Integer)、浮点数(Double)、字符串(String)等。
根据变量存储的数据类型,可以进行不同的操作和运算。
示例:```Dim age ' 整数类型age = 25Dim weight ' 浮点数类型weight = 65.5Dim name ' 字符串类型name = "John"MsgBox "I am " & age & " years old and my weight is " & weight & "kg."```4. 条件语句条件语句用于根据条件的结果执行不同的代码块。
VBScript提供了多种条件语句,如If语句、Select Case语句等。
示例:```Dim scorescore = 80If score >= 90 ThenMsgBox "优秀"ElseIf score >= 80 ThenMsgBox "良好"ElseIf score >= 60 ThenMsgBox "及格"ElseMsgBox "不及格"End If```5. 循环语句循环语句用于重复执行一段代码,直到满足退出条件为止。
. TypeName及VarType函数介绍,示例程序如下:可用VarType 函数来返回某个数据的Variant 子类型,如下面的代码:Dim strInput,strVarType,strTypeNamestrInput="hello world"MsgBox strInputstrVarType=VarType(strInput)MsgBox "VarType:"&strVarTypestrTypeName=TypeName(strInput)MsgBox "TypeName:"&strTypeName问题:如下三段语句,结果分别是什么?Dim VarTypeCheckVarTypeCheck = VarType(300)MsgBox VarTypeCheckVarTypeCheck = VarType(#10/19/62#)MsgBox VarTypeCheckVarTypeCheck = TypeName("VBScript")MsgBox VarTypeCheck. Option Explicit 声明,如果变量没有定义就使用要报错:Option ExplicitDim MyDateMyDate = "October 19, 1962"If IsDate(MyDate) thenMyShortDate = CDate(MyDate)End ifMsgBox MyShortDate变量的作用域与存活期:Dim strMainCall ChangeValueSub ChangeValue()Dim strSubstrMain="hello world!"MsgBox "strMain InSub:"&strMainstrSub="hello liuxiaolin"MsgBox "strSub InSub:"&strSubEnd SubMsgBox "strMain in Main:"&strMainMsgBox "strSub in Main:"&strSub数组的定义:Dim 数组名(n)实际上数据会有n+1个元素,下标从0到nDim MyArray(10),iFor i=0 To 10MyArray(i)=iMsgBox MyArray(i)NextMsgBox "min is "&LBound(MyArray) '返回数组的最小可用下标MsgBox "max is "&UBound(MyArray) '返回数组的最大可用上标利用Redim重新定义数据的大小,加上preserve关键字保存原来数组的内容:Dim MyFamily()ReDim MyFamily(1)MyFamily(0)="0"MyFamily(1)="1"ReDim MyFamily(2).'ReDim Preserve MyFamily(2)MyFamily(2)="2"Dim iFor i=0 To 2MsgBox MyFamily(i)Next在字符串中回车换行的方法:chr(13)&chr(10) / vbCr&vbLf / vbCrLf / vbNewLineDim str,str1,str2,str3,str4str="how are you fine,thank you!"str1="how are you"&chr(13)&chr(10)&"fine,thank you!"str2="how are you"&vbCr&vbLf&"fine,thank you!"str3="how are you"&vbCrLf&"fine,thank you!"str4="how are you"&vbNewLine&"fine,thank you!"MsgBox strMsgBox "str1:"&str1MsgBox "str2:"&str2MsgBox "str3:"&str3MsgBox "str4:"&str4Chr用法:Dim strstr=chr(34) & "Hello" & chr(34)MsgBox str.Const常量Const a=1a=2IF…THEN…ELSEIF…ELSE…END IF语句:Dim House,CarHouse=NullCar=nullIf IsNull(House) Or IsNull(Car) ThenMsgBox "现在我们还不成熟,还是再等等吧!"ElseMsgBox "OK,我嫁给你!"End If课堂练习:找出3个整数中的最大数并输出,三个整数存在三个变量intA,intB,intC中.Dim intA,intB,intC,maxintA=8intB=5intC=3If intA>=ntB Thenmax=intAelsemax= intBEnd IfIf max>=intC ThenMsgBox maxElseMsgBox intCEnd IfDim intA,intB,intC,tempintA=CInt(InputBox("请输入整数A:"))intB=CInt(InputBox("请输入整数B:"))intC=CInt(InputBox("请输入整数C:"))If intA>=intB Thentemp =intAelsetemp =intBEnd IfIf temp >=intC ThenMsgBox tempElseMsgBox intCEnd IfSelect…case…case else…End Select语句:Dim strstr=InputBox("请输入你要说的话!")Select Case strCase "hello"MsgBox "hello"Case "how are you"MsgBox "fine,thank you "Case ElseMsgBox "thanks"End Select.Case后接的表达式可以是任意字符,如:case 1,也可以是多个表达式,如:case 5,6,7,但是vbs中不支持给出case后的范围的格式课堂练习:输入一个字符,判断字符类型:大写、小写、数字、其他。
vbs代码教程VBScript是一种基于VB(Visual Basic)的脚本语言,可以用于Windows操作系统上的自动化任务和脚本编写。
本教程将带你了解VBScript的基础知识以及如何编写简单的脚本。
1. 输出文本:使用VBScript,你可以使用`MsgBox`函数在屏幕上显示文本。
例如,在脚本中添加以下代码:```MsgBox "Hello World!"```2. 变量:在VBScript中,你可以使用变量来存储和操作数据。
变量可以是字符、数字、布尔值等。
例如,以下代码创建一个变量,并将其打印到屏幕上:```Dim namename = "John"MsgBox name```3. 运算符:VBScript支持各种数学和逻辑运算符,用于进行计算和比较。
例如,下面的代码演示了如何使用运算符进行加法和比较操作:```Dim num1, num2, sumnum1 = 10num2 = 5sum = num1 + num2MsgBox sumDim resultresult = (num1 > num2)MsgBox result```4. 条件语句:条件语句允许你根据条件的不同来执行不同的代码块。
VBScript中最常用的条件语句是`If...Then...Else`。
例如,以下代码根据条件的不同来显示不同的消息:```Dim numnum = 10If num > 10 ThenMsgBox "Greater than 10"ElseIf num < 10 ThenMsgBox "Less than 10"ElseMsgBox "Equal to 10"End If```5. 循环语句:循环语句允许你多次执行相同或类似的代码块。
VBScript中有几种类型的循环语句,包括`For...Next`循环和`Do...Loop`循环。
很好的VBS教程(带实例)推荐第一篇:讲一下VBScript。
主要面向菜鸟,懂得编程的朋友就不要浪费时间了,如果你想接触以下VBScript也可以。
但既然有编程基础推荐直接去找一些参考书来读。
会比较快。
什么是VBScript呢?VBScript的全称是:Microsoft Visual Basic Script Editon.(微软公司可视化BASIC脚本版)。
正如其字面所透露的信息,VBS(VBScript的进一步简写)是基于Visual Basic的脚本语言。
我进一步解释一下,Microsoft Visual Basic是微软公司出品的一套可视化编程工具,语法基于Basic.脚本语言,就是不编译成二进制文件,直接由宿主(host)解释源代码并执行,简单点说就是你写的程序不需要编译成.exe,而是直接给用户发送.vbs的源程序,用户就能执行了。
我知道菜鸟现在最关心的就是用什么工具来开发VBS程序了,答案是:记事本(Notepad).我不是开玩笑,其实任何一种文本编辑器都可以用来开发VBS开发,只不过记事本是由系统自带的,比较好找而已. 尽管如此,我还是建议你去下载一个专业的文本编辑器,因为这些工具可以提供 "语法高亮"等功能,更加方便开发,用哪一个随你喜好,我比较喜欢Edit Plus (2.10).OK,我们先来写一个VBScript程序热热身.REM 输入并回显你的名字'使用InputBox和Msgbox函数Dim name,msgmsg="请输入你的名字:"name=Inputbox(msg,"名称")Msgbox(name)把上面的程序清单输入到记事本里面,然后保存为以.vbs为扩展名的文件("保存类型"里面选择"所有文件").然后双击运行,观察运行结果. 注意:请自己输入程序清单,不要复制->粘贴!我来解释一下这个程序,第一行和第二行的开头分别是"REM"语句和" ' ",这两个东西的作用是相同的,表示本行是注释行,就是说这两行什么也不干,只是用来说明这段程序的功能,版权信息等等. 注释行是程序最重要的部分之一,尽管它不是必需的,但对于其他人阅读源代码,以及自己分析源代码是很有好处的. 好的习惯是在必要的地方加上清晰,简洁的注释。
. TypeName及VarType函数介绍,示例程序如下:可用VarType 函数来返回某个数据的Variant 子类型,如下面的代码:Dim strInput,strVarType,strTypeNamestrInput="hello world"MsgBox strInputstrVarType=VarType(strInput)MsgBox "VarType:"&strVarTypestrTypeName=TypeName(strInput)MsgBox "TypeName:"&strTypeName问题:如下三段语句,结果分别是什么?Dim VarTypeCheckVarTypeCheck = VarType(300)MsgBox VarTypeCheckVarTypeCheck = VarType(#10/19/62#)MsgBox VarTypeCheckVarTypeCheck = TypeName("VBScript")MsgBox VarTypeCheck. Option Explicit 声明,如果变量没有定义就使用要报错:Option ExplicitDim MyDateMyDate = "October 19, 1962"If IsDate(MyDate) thenMyShortDate = CDate(MyDate)End ifMsgBox MyShortDate变量的作用域与存活期:Dim strMainCall ChangeValueSub ChangeValue()Dim strSubstrMain="hello world!"MsgBox "strMain InSub:"&strMainstrSub="hello liuxiaolin"MsgBox "strSub InSub:"&strSubEnd SubMsgBox "strMain in Main:"&strMainMsgBox "strSub in Main:"&strSub数组的定义:Dim 数组名(n)实际上数据会有n+1个元素,下标从0到nDim MyArray(10),iFor i=0 To 10MyArray(i)=iMsgBox MyArray(i)NextMsgBox "min is "&LBound(MyArray) '返回数组的最小可用下标MsgBox "max is "&UBound(MyArray) '返回数组的最大可用上标利用Redim重新定义数据的大小,加上preserve关键字保存原来数组的内容:Dim MyFamily()ReDim MyFamily(1)MyFamily(0)="0"MyFamily(1)="1"ReDim MyFamily(2).'ReDim Preserve MyFamily(2)MyFamily(2)="2"Dim iFor i=0 To 2MsgBox MyFamily(i)Next在字符串中回车换行的方法:chr(13)&chr(10) / vbCr&vbLf / vbCrLf / vbNewLineDim str,str1,str2,str3,str4str="how are you fine,thank you!"str1="how are you"&chr(13)&chr(10)&"fine,thank you!"str2="how are you"&vbCr&vbLf&"fine,thank you!"str3="how are you"&vbCrLf&"fine,thank you!"str4="how are you"&vbNewLine&"fine,thank you!"MsgBox strMsgBox "str1:"&str1MsgBox "str2:"&str2MsgBox "str3:"&str3MsgBox "str4:"&str4Chr用法:Dim strstr=chr(34) & "Hello" & chr(34)MsgBox str.Const常量Const a=1a=2IF…THEN…ELSEIF…ELSE…END IF语句:Dim House,CarHouse=NullCar=nullIf IsNull(House) Or IsNull(Car) ThenMsgBox "现在我们还不成熟,还是再等等吧!"ElseMsgBox "OK,我嫁给你!"End If课堂练习:找出3个整数中的最大数并输出,三个整数存在三个变量intA,intB,intC中.Dim intA,intB,intC,maxintA=8intB=5intC=3If intA>=ntB Thenmax=intAelsemax= intBEnd IfIf max>=intC ThenMsgBox maxElseMsgBox intCEnd IfDim intA,intB,intC,tempintA=CInt(InputBox("请输入整数A:"))intB=CInt(InputBox("请输入整数B:"))intC=CInt(InputBox("请输入整数C:"))If intA>=intB Thentemp =intAelsetemp =intBEnd IfIf temp >=intC ThenMsgBox tempElseMsgBox intCEnd IfSelect…case…case else…End Select语句:Dim strstr=InputBox("请输入你要说的话!")Select Case strCase "hello"MsgBox "hello"Case "how are you"MsgBox "fine,thank you "Case ElseMsgBox "thanks"End Select.Case后接的表达式可以是任意字符,如:case 1,也可以是多个表达式,如:case 5,6,7,但是vbs中不支持给出case后的范围的格式课堂练习:输入一个字符,判断字符类型:大写、小写、数字、其他。
给出相应的提示信息。
Option ExplicitDim strValuestrValue = InputBox ("请输入一个字符:")strValue = CInt(Asc(strValue))MsgBox strValueIf strValue>=65 And strValue<=90 ThenstrValue=1ElseIf strValue>=97 And strValue<=122 ThenstrValue=2ElseIf strValue>=48 And strValue<=57 ThenstrValue=3End ifSelect Case strValueCase 1MsgBox "您输入的是大写字母!"Case 2MsgBox "您输入的是小写字母!"Case 3MsgBox "您输入的是数字!"Case ElseMsgBox "您输入的是特殊字符"End SelectDo…Loop循环语句的使用:推荐使用while循环'即使不符合条件也会做一次.Dim intAgeintAge=0DointAge=intAge+1MsgBox CStr(intAge)Loop While intAge<=5'不符合条件时,则一次也不做intAge=0Do While intAge<=5intAge=intAge+1MsgBox CStr(intAge)Loop'达到条件时就不再进入循环了。
而while语句在达到条件时也要再进入循环一次Dim intAgeintAge=0Do Until intAge=5intAge=intAge+1MsgBox intAgeLoopintAge=0DointAge=intAge+1MsgBox intAgeLoop Until intAge=5'Do循环支持Exit Do语句Dim intAgeintAge=0Do Until intAge=5intAge=intAge+1MsgBox intAgeIf intAge=3 ThenExit DoEnd IfLoopWhile…Wend循环语句的使用:不建议使用,因为没有退出循环的语句Dim intAgeintAge=0.While intAge<5intAge=intAge+1MsgBox intAgeWendFor…Next循环语句的使用:Dim iFor i=1 To 5MsgBox iNextFor i=1 To 5 Step 2MsgBox iNextFor i=5 To 1 Step -1MsgBox iNext练习:接收用户输入的5个数字,然后倒序输出出来Dim intMyArray(4),iFor i=0 To 4intMyArray(i)=InputBox("请输入第"&CStr(i)&"个数字")NextFor i=4 To 0 Step -1MsgBox "您输入的第"&CStr(i)&"个数字是:"&CStr(intMyArray(i))Next. For each…Next循环语句的使用:如果生命还有三天,你准备怎么安排呢?Dim countDownDaycountDownDay=Array("看日出","骑自行车","聊天")For Each element In countDownDayMsgBox elementNextWith…End With语句的使用:SystemUtil.Run "E:\WINDOWS\system32\calc.exe"With Window("计算器").WinButton("1").Click.WinButton("+").Click.WinButton("2").Click.WinButton("=").Click.CloseEnd withSub与Function的用法:Dim strCallstrCall=InputBox("请输入你想说的话:")'Shout strCallCall Shout(strCall)Sub Shout(ByVal strEcho)MsgBox strEcho&"!"End SubDim strstr=InputBox("请输入你想说的话:")MsgBox Answer(str)Function Answer(ByVal strAsk)Select Case strAskCase "我爱你"Answer="我也爱你"Case "我恨你"Answer="冤冤相报何时了"Case ElseAnswer="下次再聊"End Select. End Function函数的返回值:格式为:函数名=返回值Function add(x,y)add=x+yMsgBox addEnd Functiona=add (1,2)MsgBox a注意与c和tcl中return的区别参数的值传递ByVal与地址传递ByRef:ByVal 与 ByRef(默认值)这两个是子过程的参数传递时,指定参数按什么传递的ByVal(按值传递)ByRef(按地址传递)具体这样来理解:过程中的参数列表,我们称形参调用过程时的参数列表,我们称实参在调用时,我们要将实参的值传递给形参,这样过程才能拿这些数据参与计算并实现一些功能那么在传递的过程中,就存在这两种传递方式传值时(ByVal),是先给形参开辟一个临时地址,将实参的内容传入这个临时地址,这样,传递后,形参与实参是在两上不同的地址中,也就是说他们是相互独立的传址时(ByRef),是直接将实参的地址传递给形参,这样,形参与实参就共用一个地址,所以,形参内容的改变,也直接改变了实参的内容通过上面的分析,你只要记得:按值传递时(ByVal),形参的改变不会影响到实参按址传递时(ByRef),形参的改变,会影响到实参Dim strstr="hello world!"Call strEcho(str)MsgBox strSub strEcho(ByVal str)str=str&"!!!!!"End SubDim strstr="hello world!"Call strEcho(str)MsgBox strSub strEcho(ByRef str)str=str&"!!!!!"End SubDim msgmsg = "喂,你好吗?"MsgBox msgAnswer msgMsgBox msg'Sub Answer(ByVal sentense)' sentense = "我很好!你呢?"'End SubSub Answer(ByRef sentense)sentense = "我很好!你呢?"End Sub过程的调用在调用过程时,不必使用Call关键字。