<HTML>
<HEAD>
</HEAD>
<SCRIPT LANGUAGE="VBScript">
<!–
MsgBox "Hello World!"
–>
</SCRIPT>
</BODY>
</HTML>
前面展示了一个HTML文件中嵌套VBScript的例子。这里展示一个通过Windows Script Host执行的本地vbs文件的例子。
Dim ws : Set ws = CreateObject("WScript.Shell")
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim TmpFile : TmpFile = fso.GetSpecialFolder(2) & "/ip.txt"
Dim ThisLine, IP
If ws.Environment("SYSTEM")("OS") = "" Then
ws.run "winipcfg /batch " & TmpFile, 0, True
Else
ws.run "%comspec% /c ipconfig > " & TmpFile, 0, True
End If
With fso.GetFile(TmpFile).OpenAsTextStream
Do While NOT .AtEndOfStream
ThisLine = .ReadLine
If InStr(ThisLine, "Address") <> 0 Then IP = Mid(ThisLine, InStr(ThisLine, ":") + 2)
Loop
.Close
End With
'WinXP (NT? 2K?) leaves a carriage return at the end of line
If IP <> "" Then
If Asc(Right(IP, 1)) = 13 Then IP = Left(IP, Len(IP) - 1)
End If
GetIP = IP
fso.GetFile(TmpFile).Delete
Set fso = Nothing
Set ws = Nothing
End Function
VBScript的语句可以是一个声明或者一个表达式,或者是注释语句。语句自然结束(换行符),没有特殊的终结符。如果一条语句中包含有单引号('),则该单引号后面的内容被看作是注释。
VBScript只支持一种变量数据类型,即Variant。按照变量间的互操作性可进一步分为以下几种子类型:
VBScript允许通过Class关键字定义用户数据类型。语法是:
如我们可以定义一个CPoint类:
类似于C++,VBScript中的类也支持构造和析构,这是通过声明
来实现的。下面的例子演示了对象创建和析构时的调用。不过,没有办法给这两个方法传入参数,从而限制了这两个方法的应用。默认地,与C++不同,类的方法和成员都是公用的。当然,VBScript并不支持声明与定义分离,这使得类过程定义必须全部写在类声明之中,从而使用类声明很冗长,不方便阅读。
前面的例子已经给出了如何声明一个固定元素个数的一维数组。下面是一组声明动态数组和多维数组的例子:
这里有几点注意: 使用const来声明一个常量。如:
对子类型是对象的变量的赋值必须使用Set语句,除前面在谈论类声明时给出的例子外,这里再给出一个例子:
这样的赋值是错误的: 这样的赋值是错误的:
这里可以看出,VBSCript尽管是无类型的语言,但数据间的可互操作性决定了变量必然从属于某个子类型,从而变量的赋值,运算和转换也要服从某些规定,否则要么无法通过语法检查,要么更恶劣地,造成逻辑错误。
对象变量的比较运算在这里需要提及一下。
输出结果为:
鉴于类型是如此重要,我们再看一个函数,VarType()。下面给出了VarType调用可能得到的返回值。
几个例子:
通过上面的调用可以看出,在VBScript中,数据类型的确是由赋值决定的。因些在变量互操作时,要考虑根据变量的取值来确定其数据类型,进而决定两者是否可以直接参与运算。在后面函数和过程一节中,会有示例进一步演示VarType的用法。 |



被折叠的 条评论
为什么被折叠?



