VBScript 语言参考

Microsoft(R) Visual Basic(R) Scripting Edition
VBScript 语言参考 		VBScript 教程
版本信息

特性信息

按字母排序的关键字列表

常数

事件

函数

方法

对象

运算符

属性

语句

欢迎光临 VBScript 语言参考

这里的信息可以帮你很方便地浏览 Visual Basic 脚本的许多不同部分。

你可以找到在按字母排序的关键字列表中列出的 VBScript 语言的所有部分。如果你只想调阅某一部分，例如“对象”，那么语言的每一部分都有它自己更严密的章节。

如何查找呢？单击左边的某个标题，即显示该部分中包含的项目列表。从这张列表中选择要查看的主题。当这个主题打开后，再链接到其他相关的部分就简单多了。

好了，让我们试一试，体会体会！学习几个语句，研究几种方法，或者熟悉几个函数。你就能学会如何巧妙地运用 VBScript 语言，充分发挥 VBScript 语言的强大功能。

特性 | 说明
VBScript 特性 | VBScript 最新特性列表
未包含在 VBScript 中的 VBA 特性 | VBScript 最新特性列表：未包含在 VBScript 中的应用程序编辑。
未包含在 VBA 中的 VBScript 特性 | 未包含在 Visual Basic 中的 VBScript 特性列表：应用程序编辑。
Microsoft Scripting 运行时特性 | VBScript 中最新的 Scripting 运行时特性列表。
语言元素 | 说明
Abs 函数 | 返回数的绝对值。
加法运算符 (+) | 两数相加。
And 运算符 | 执行两个表达式的逻辑连接。
Array 函数 | 返回含一数组的 变体 。
Asc 函数 | 返回字符串首字母的 ANSI 字符代码。
赋值运算符 (=) | 给变量或属性赋值。
Atn 函数 | 返回数的反正切值。
调用语句 | 将控制移交 Sub 或 Function 过程。
CBool 函数 | 返回已被转换为 Boolean 子类型的变体的表达式。
CByte 函数 | 返回已被转换为字节子类型的变体的表达式。
CCur 函数 | 返回已被转换为货币子类型的变体的表达式。
CDate 函数 | 返回已被转换为日期子类型的变体的表达式。
CDbl 函数 | 返回已被转换为双精度子类型的变体的表达式。
Chr 函数 | 返回指定 ANSI 字符码的字符。
CInt 函数 | 返回已被转换为整数子类型的变体的表达式。
Class 对象 | 提供对已创建的类的事件的访问。
Class 语句 | 声明类名
Clear 方法 | 清除 Err 对象的所有属性设置。
CLng 函数 | 返回已被转换为 Long 子类型的变体的表达式。
颜色常数 | 颜色常数列表。
比较常数 | 用于比较运算的常数列表。
连接运算符 (&) | 强制两个表达式的字符串连接。
Const 语句 | 声明用于字母值的常数。
Cos 函数 | 返回角度的余弦值。
CreateObject 函数 | 创建并返回对“自动”对象的引用。
CSng 函数 | 返回已被转换为单精度子类型的变体的表达式。
CStr 函数 | 返回已被转换为字符串子类型的变体的表达式。
日期和时间常数 | 在日期和时间运算中用来定义星期几和其他常数的常数列表。
日期格式常数 | 用于日期和时间格式的常数列表。
Date 函数 | 返回当前系统日期。
DateAdd 函数 | 返回加上了指定的时间间隔的日期。
DateDiff 函数 | 返回两个日期之间的间隔。
DatePart 函数 | 返回给定日期 的指定部分。
DateSerial 函数 | 返回指定年月日的 日期子类型的变体 。
DateValue 函数 | 返回日期子类型的变体 。
Day 函数 | 返回日期，取值范围为 1 至 31。
Description 属性 | 返回或者设置说明某个错误的字符串。
Dictionary 对象 | 存储数据键、项目对的对象。
Dim 语句 | 声明变量并分配存储空间。
除法运算符 (/) | 两数相除并以浮点数格式返回商。
Do...Loop 语句 | 当条件为 True 或者当条件变为 True 时，重复一语句块。
Empty | 表示尚未初始化的变量值。
Eqv 运算符 | 使两个表达式相等。
Erase 语句 | 重新初始化固定数组的元素并重新分配动态数组的存储空间。
Err 对象 | 含有关于运行时错误的信息。
Eval 函数 | 计算并返回表达式的值。
Execute 方法 | 根据指定的字符串，执行正则表达式的搜索。
Execute 语句 | 执行单个或更多的指定语句。
Exit 语句 | 退出 Do...Loop、For...Next、 Function 或 Sub 代码块。
Exp 函数 | 返回 e （自然对数的底）的多少次方。
自乘运算符 (^) | 指数函数，幂为自变量。
False | 关键字，其值为零。
FileSystemObject 对象 | 提供对计算机文件系统的访问。
Filter 函数 | 根据指定的筛选条件,返回含有字符串数组子集的、下限为 0 的数组。
FirstIndex 属性 | 返回字符串匹配的位置。
Fix 函数 | 返回数的整数部分。
For...Next 语句 | 以指定的次数重复一组语句。
For Each...Next 语句 | 对于数组或集合中的每一个元素，重复一组语句。
FormatCurrency 函数 | 返回的表达式为货币值格式，其货币符号采用系统控制面板中定义的。
FormatDateTime 函数 | 返回格式化为日期或时间的表达式。
FormatNumber 函数 | 返回格式化为数的表达式。
FormatPercent 函数 | 返回格式化为百分比（乘以 100）的表达式，以 % 符号结尾。
Function 语句 | 声明形成 Function 过程体的名称、参数和代码。
GetObject 函数 | 从文件返回对“自动”对象的访问。
GetRef 函数 | 返回对可以绑定到事件的过程的引用。
Global 属性 | 设置或返回 Boolean 值。
Hex 函数 | 返回表示数的十六进制值的字符串。
HelpContext 属性 | 设置或返回帮助文件中某主题的上下文 ID。
HelpFile 属性 | 设置或返回帮助文件的全路径。
Hour 函数 | 返回小时数，取值范围为 0 至 23。
If...Then...Else 语句 | 根据表达式的值，有条件地执行一组语句。
IgnoreCase 属性 | 设置或返回 Boolean 值，指示模式搜索是否区分大小写。
Imp 运算符 | 执行两个表达式的逻辑隐含。
初始化事件 | 发生在创建相关类的实例时。
InputBox 函数 | 在对话框中显示提示，等待用户输入文本或者单击按钮，并返回文本框的内容。
InStr 函数 | 返回一个字符串在另一个字符串中第一次出现的位置。
InStrRev 函数 | 返回一个字符串在另一个字符串中出现的位置，是从字符串的末尾算起。
Int 函数 | 返回数的整数部分。
整数除法运算符(\) | 两数相除，返回的商取其整数部分。
Is 运算符 | 比较两个对象引用变量。
IsArray 函数 | 返回 Boolean 值，表示变量是否为数组。
IsDate 函数 | 返回 Boolean 值，表示表达式是否可以转换为日期。
IsEmpty 函数 | 返回 Boolean 值，表示变量是否已被初始化。
IsNull 函数 | 返回 Boolean 值，表示表达式是否含有无效数据 (Null)。
IsNumeric 函数 | 返回 Boolean 值，表示表达式能否当作一个数，用来计算。
IsObject 函数 | 返回 Boolean 值，表示表达式是否引用了有效的“自动”对象。
Join 函数 | 返回连接许多包含在一个数组中的子串而创建的字符串。
LBound 函数 | 对于指示的数组维数，返回最小的可用下标。
LCase 函数 | 返回已被转换为小写字母的字符串。
Left 函数 | 返回字符串最左边的指定数量的字符。
Len 函数 | 返回字符串中的字符数量，或者存储变量所需的字节数。
Length 属性 | 返回在搜索字符串中匹配的长度。
LoadPicture 函数 | 返回图片对象。仅用于 32 位平台。
Log 函数 | 返回数的自然对数。
LTrim 函数 | 返回去掉前导空格的字符串副本。
Match 对象 | 提供访问匹配正则表达式的只读属性。
Matches 集合 | 正则表达式匹配对象的集合。
Mid 函数 | 从字符串中返回指定数量的字符。
Minute 函数 | 返回小时内的分钟数，取值范围为 0 至 59。
杂项常数 | 不能纳入任何其他类的常数列表。
Mod 运算符 | 两数相除，只返回余数。
Month 函数 | 返回月份，取值范围为 1 至 12。
MonthName 函数 | 返回表示月份的字符串。
MsgBox 常数 | 与MsgBox 函数一起使用的常数列表。
MsgBox 函数 | 在对话框中显示消息，等待用户单击按钮，并返回表示用户所击按钮的数值。
乘法运算符 (*) | 两数相乘。
取反运算符 (-) | 表示数值表达式的相反数。
Not 运算符 | 执行表达式的逻辑“非”运算。
Now 函数 | 返回当前计算机的系统日期和时间。
Nothing | 使对象变量与所有实际的对象没有任何关联。
Null | 表示变量含有无效的数据。
Number 属性 | 返回或设置代表某个错误的数值。
Oct 函数 | 返回表示一数的八进制值的字符串。
On Error 语句 | 启用错误处理。
运算符的优先级 | 表示各种 VBScript 运算符的优先顺序的列表。
Option Explicit 语句 | 强制显式声明脚本中的所有变量。
Or 运算符 | 执行两个表达式的逻辑“或”运算。
Pattern 属性 | 设置或返回正被搜索的正则表达式的模式。
Private 语句 | 声明私有变量并分配存储空间。
PropertyGet 语句 | 声明在窗体属性过程中获取（返回）属性值的名称，参数和代码。
PropertyLet 语句 | 声明在窗体属性过程中指定属性值的名称，参数和代码。
PropertySet 语句 | 声明在窗体属性过程中设置引用到对象的名称，参数和代码。
Public 语句 | 声明公有变量并分配存储空间。
Raise 方法 | 产生运行时错误。
Randomize 语句 | 初始化随机数发生器。
ReDim 语句 | 声明动态数组变量，并分配或重新分配过程级的存储空间。
RegExp 对象 | 提供简单正则表达式的支持。
Rem 语句 | 包含程序中的注释。
Replace 函数 | 返回一个字符串，其中某个指定的子串被另一个子串替换，替换的次数也有规定。
Replace 方法 | 替换在正则表达式搜索中已发现的正文。
RGB 函数 | 返回表示 RGB 颜色值的数。
Right 函数 | 返回字符串最右边的指定数量的字符。
Rnd 函数 | 返回一随机数。
Round 函数 | 返回指定位数、四舍五入的数。
RTrim 函数 | 返回去掉尾部空格的字符串副本。
ScriptEngine 函数 | 返回表示正在使用中的脚本语言的字符串。
ScriptEngineBuildVersion 函数 | 返回使用中的脚本引擎的编译版本号。
ScriptEngineMajorVersion 函数 | 返回使用中的脚本引擎的主版本号。
ScriptEngineMinorVersion 函数 | 返回使用中的脚本引擎的次版本号。
Second 函数 | 返回时间的秒数，取值范围为 0 至 59。
Select Case 语句 | 根据表达式的值，在若干组语句中选择一组执行。
Set 语句 | 将对象引用赋予变量或属性。
Sgn 函数 | 返回表示数的符号的整数。
Sin 函数 | 返回角度的正弦值。
Source 属性 | 返回最早出错的对象或应用程序的名称。
Space 函数 | 返回由指定数量的空格组成的字符串。
Split 函数 | 返回下限为 0 的、由指定数量的子串组成的一维数组。
Sqr 函数 | 返回数的平方根。
StrComp 函数 | 返回反映字符串比较结果的值。
字符串常数 | 字符串常数的列表。
String 函数 | 返回重复的字符串，达到指定的长度。
StrReverse 函数 | 返回一字符串，其中字符的顺序与指定的字符串中的顺序相反。
Sub 语句 | 声明形成 Sub 过程体的名称、参数和代码。
减法运算符 (-) | 求两数之差，或表示某数值表达式的相反数。
Tan 函数 | 返回角度的正切值。
终结事件 | 发生在相关类的实例终结之时。
Test 方法 | 根据指定的字符串，执行正则表达式的搜索。
Time 函数 | 返回反映当前系统时间的日期子类型的变体。
Timer 函数 | 返回时经子夜 12:00 AM 后的秒数。
TimeSerial 函数 | 返回含有指定时分秒时间的日期子类型的变体。
TimeValue 函数 | 返回含有时间的日期子类型的变体。
Trim 函数 | 返回去掉前导空格或末尾空格的字符串副本。
三态常数 | 在代码中使用，以便表示每个显示的值。
True | 其值为 -1 的关键字。
TypeName 函数 | 返回一字符串，它提供了关于变量的变体子类型信息。
UBound 函数 | 返回指定维数数组的最大有效下标。
UCase 函数 | 返回的字符串已经被转换为大写字母。
Value 属性 | 返回在搜索字符串中已发现匹配的值或正文。
VarType 常数 | 定义变体子类型的常数列表。
VarType 函数 | 返回标识变体子类型的数值。
VBScript 常数 | 在 VBScript 中提供不同种类的常数。
Weekday 函数 | 返回表示星期几的数值。
WeekdayName 函数 | 返回表示星期几的字符串。
While...Wend 语句 | 只要给定的条件为 True，便执行一串语句。
With 语句 | 对单个的对象执行一串语句。
Xor 运算符 | 执行两个表达式的逻辑“异或”运算。
Year 函数 | 返回表示年份的数值。
语言元素 | 说明
颜色常数 | 颜色常数列表。
比较常数 | 用于比较运算的常数列表。
日期和时间常数 | 定义星期几和用于日期和时间运算的其他常数的常数列表。
日期格式常数 | 用于日期和时间格式的常数列表。
杂项常数 | 不能纳入任何其他类的常数列表。
MsgBox 常数 | 和 MsgBox 函数一起使用的常数列表。
字符串常数 | 字符串常数列表。
三态常数 | 使用代码，以便表示每个显示的值。
VarType 常数 | 定义变体子类型的常数列表。
VBScript 常数 | 在 VBScript 中提供不同种类的常数。
语言元素 | 说明
初始化事件 | 发生在相关类的实例被创建时。
终结事件 | 发生在相关类的实例被终结时。
语言元素 | 说明
Abs 函数 | 返回数的绝对值。
Array 函数 | 返回含有数组的变体。
Asc 函数 | 返回字符串首字母的 ANSI 字符码。
Atn 函数 | 返回数值的反正切。
CBool 函数 | 返回已被转换为 Boolean 子类型的变体的表达式。
CByte 函数 | 返回已被转换为字节子类型的变体的表达式。
CCur 函数 | 返回已被转换为货币子类型的变体的表达式。
CDate 函数 | 返回已被转换为日期子类型的变体的表达式。
CDbl 函数 | 返回已被转换为双精度子类型的变体的表达式。
Chr 函数 | 返回与指定的 ANSI 字符码相关的字符。
CInt 函数 | 返回已被转换为整形子类型的变体的表达式。
CLng 函数 | 返回已被转换为Long子类型的变体的表达式。
Cos 函数 | 返回角度的余弦。
CreateObject 函数 | 创建并返回对“自动”对象的引用。
CSng 函数 | 返回已被转换为单精度子类型的变体的表达式。
CStr 函数 | 返回已被转换为字符串子类型的变体的表达式。
Date 函数 | 返回当前系统日期。
DateAdd 函数 | 返回的日期已经加上了指定的时间间隔。
DateDiff 函数 | 返回两个日期之间的间隔。
DatePart 函数 | 返回给定日期的指定部分。
DateSerial 函数 | 返回指定年月日的日期子类型的变体。
DateValue 函数 | 返回日期子类型的变体。
Day 函数 | 返回日期，取值范围为 1 至 31。
Eval 函数 | 计算表达式并返回结果。
Exp 函数 | 返回 e （自然对数的底） 的多少次方。
Filter 函数 | 根据指定的筛选条件,返回含有字符串数组子集的、下限为 0 的数组。
Fix 函数 | 返回数的整数部分。
FormatCurrency 函数 | 返回的表达式为货币值格式，其货币符号采用系统控制面板中定义的。
FormatDateTime 函数 | 返回的表达式为日期和时间格式。
FormatNumber 函数 | 返回的表达式为数字格式。
FormatPercent 函数 | 返回的表达式为百分数（乘以 100）格式，后面有 % 符号。
GetObject 函数 | 返回从文件对“自动”对象的引用。
GetRef 函数 | 返回对能够绑定到一事件的过程的引用。
Hex 函数 | 返回一字符串，代表一个数的十六进制值。
Hour 函数 | 返回表示钟点的数字，取值范围为 0 至 23。
InputBox 函数 | 在对话框中显式一提示，等待用户输入文本或单击按钮，并返回文本框的内容。
InStr 函数 | 返回一个字符串在另一个字符串中首次出现的位置。
InStrRev 函数 | 返回一个字符串在另一个字符串中出现的位置，但是从字符串的尾部算起。
Int 函数 | 返回数的整数部分。
IsArray 函数 | 返回 Boolean 值，反映变量是否为数组。
IsDate 函数 | 返回 Boolean 值，反映表达式能否转换为日期。
IsEmpty 函数 | 返回 Boolean 值，反映变量是否已被初始化。
IsNull 函数 | 返回 Boolean 值，反映表达式是否含有无效数据(Null)。
IsNumeric 函数 | 返回 Boolean 值，反映表达式能否转换为数字。
IsObject 函数 | 返回 Boolean 值，反映表达式是否引用了有效的“自动”对象。
Join 函数 | 返回通过连接许多含有数组的子串而创建的字符串。
LBound 函数 | 返回指定维数数组的最小有效下标。
LCase 函数 | 返回的字符串已被转换为小写字母。
Left 函数 | 返回字符串最左边的指定数量的字符。
Len 函数 | 返回字符串中的字符数或存储变量所需的字节数。
LoadPicture 函数 | 返回图片对象。只用于 32 位平台。
Log 函数 | 返回数的自然对数。
LTrim 函数 | 返回去掉前导空格的字符串。
Mid 函数 | 从字符串中返回指定数量的字符。
Minute 函数 | 返回分钟数，取值范围为 0 至 59。
Month 函数 | 返回表示月份的数，取值范围为 1 至 12。
MonthName 函数 | 返回表示月份的字符串。
MsgBox 函数 | 在对话框中显示消息，等待用户单击按钮，并返回表示用户所击按钮的数值。
Now 函数 | 返回计算机的当前系统日期和时间。
Oct 函数 | 返回表示该数八进制数值的字符串。
Replace 函数 | 返回一字符串，其中指定的子串已被另一个子串替换了规定的次数。
RGB 函数 | 返回代表 RGB 颜色值的数字。
Right 函数 | 返回字符串最右边的指定数量的字符。
Rnd 函数 | 返回随机数。
Round 函数 | 返回指定位数、四舍五入的数。
RTrim 函数 | 返回去掉尾部空格的字符串副本。
ScriptEngine 函数 | 返回反映使用中的脚本语言的字符串。
ScriptEngineBuildVersion 函数 | 返回使用中的脚本引擎的编译版本号。
ScriptEngineMajorVersion 函数 | 返回使用中的脚本引擎的主版本号。
ScriptEngineMinorVersion 函数 | 返回使用中的脚本引擎的次版本号。
Second 函数 | 返回秒数，取值范围为 0 至 59。
Sgn 函数 | 返回反映数的符号的整数。
Sin 函数 | 返回角度的正弦值。
Space 函数 | 返回由指定数量的空格组成的字符串。
Split 函数 | 返回下限为 0 的、由指定数量的子串组成的一维数组。
Sqr 函数 | 返回数的平方根。
StrComp 函数 | 返回反映字符串比较结果的数值。
String 函数 | 返回指定长度的重复字符串。
StrReverse 函数 | 返回一字符串，其中字符的顺序与指定的字符串中的顺序相反。
Tan 函数 | 返回角度的正切值。
Time 函数 | 返回表示当前系统时间的“日期”子类型的“变体”。
Timer 函数 | 返回时经子夜 12:00 AM 后的秒数。
TimeSerial 函数 | 返回含有指定时分秒时间的日期子类型的变体。
TimeValue 函数 | 返回含有时间的日期子类型的变体。
Trim 函数 | 返回去掉前导空格或尾部空格的字符串副本。
TypeName 函数 | 返回一字符串，它提供了关于变量的变体子类型信息。
UBound 函数 | 返回指定维数数组的最大有效下标。
UCase 函数 | 返回的字符串已经被转换为大写字母。
VarType 函数 | 返回标识变体子类型的数值。
Weekday 函数 | 返回表示星期几的数值。
WeekdayName 函数 | 返回表示星期几的字符串。
Year 函数 | 返回表示年份的数值。
语言元素 | 说明
Clear 方法 | 清除 Err 对象的所有属性设置。
Execute 方法 | 根据指定的字符串，执行正则表达式的搜索。
Raise 方法 | 产生运行时错误。
Replace 方法 | 替换在正则表达式搜索中发现的正文。
Test 方法 | 根据指定的字符串，执行正则表达式的搜索。
语言元素 | 说明
类对象 | 提供对于已创建的类的事件的访问。
字典对象 | 存储数据键、项目对的对象。
Err 对象 | 含有关于运行时错误的信息。
FileSystemObject 对象 | 提供对计算机文件系统的访问。
Match 对象 | 提供访问匹配正则表达式的只读属性。
Matches 集合 | 正则表达式匹配对象的集合。
RegExp 对象 | 提供简单正则表达式的支持。
语言元素 | 说明
加法运算符 (+) | 两数相加。
And 运算符 | 执行两个表达式的逻辑连接。
赋值运算符 (=) | 给变量或属性赋值。
连接运算符 (&) | 强制两个表达式的字符串连接。
除法运算符 (/) | 两数相除，返回的商为浮点数格式。
Eqv 运算符 | 使两个表达式相等。
自乘运算符 (^) | 指数函数，幂为自变量。
Imp 运算符 | 执行两个表达式的逻辑隐含。
整数除法运算符 (\) | 两数相除，返回的商取整数。
Is 运算符 | 比较两个对象引用变量。
Mod 运算符 | 两数相除，仅返回余数。
乘法运算符 (*) | 两数相乘。
取反运算符 (-) | 表示数值表达式的相反数。
Not 运算符 | 执行表达式的逻辑“非”运算。
运算符优先级 | 表示各种 VBScript 运算符的优先顺序的列表。
Or 运算符 | 执行两个表达式的逻辑“或”运算。
减法运算符 (-) | 求两数之差，或表示数值表达式的相反数。
Xor 运算符 | 执行两个表达式的逻辑“异或”运算。
语言元素 | 说明
Description 属性 | 返回或设置某个错误的说明性字符串。
FirstIndex 属性 | 返回匹配搜索字符串的位置。
Global 属性 | 设置或返回 Boolean 值。
HelpContext 属性 | 设置或返回帮助文件中主题的上下文 ID。
HelpFile 属性 | 设置或返回帮助文件的全路径。
IgnoreCase 属性 | 设置或返回 Boolean 值指示模式搜索是否区分大小写。
Length 属性 | 返回已发现在搜索字符串中匹配的长度。
Number 属性 | 返回或设置表示错误的数值。
Pattern 属性 | 设置或返回正搜索的正则表达式的模式。
Source 属性 | 返回或设置最早发生错误的对象或应用程序的名称。
Value 属性 | 返回已发现在搜索字符串中匹配的值或正文。
语言元素 | 说明
Call 语句 | 将控制移交 Sub 或 Function 过程。
Class 语句 | 声明类名。
Const 语句 | 声明用于字母值的常数。
Dim 语句 | 声明变量并分配存储空间。
Do...Loop 语句 | 当条件为 True 或者当条件变为 True 时，重复一语句块。
Erase 语句 | 重新初始化固定数组的元素并重新分配动态数组的存储空间。
Execute 语句 | 执行一条或更多的指定语句。
Exit 语句 | 退出 Do...Loop、For...Next、 Function 或 Sub 代码块。
For...Next 语句 | 以规定的次数重复一组语句。
For Each...Next 语句 | 对于数组或集合中的每一个元素，重复一组语句。
Function 语句 | 声明形成 Function 过程体的名称、参数和代码。
If...Then...Else 语句 | 根据表达式的值，有条件地执行一组语句。
On Error 语句 | 启用错误处理。
Option Explicit 语句 | 强制显式声明脚本中的所有变量。
Private 语句 | 声明私有变量并分配存储空间。
PropertyGet 语句 | 声明在窗体属性过程中获取（返回）属性值的名称，参数和代码。
PropertyLet 语句 | 声明在窗体属性过程中指定属性值的名称，参数和代码。
PropertySet 语句 | 声明在窗体属性过程中设置引用到对象的名称，参数和代码。
Public 语句 | 声明公有变量并分配存储空间。
Randomize 语句 | 初始化随机数发生器。
ReDim 语句 | 声明动态数组变量并在过程级上分配或重新分配存储空间。
Rem 语句 | 在程序中表示注释。
Select Case 语句 | 根据表达式的值，在若干组语句中选择一组执行。
Set 语句 | 给变量或属性分配一个对象引用。
Sub 语句 | 声明形成 Sub 过程体的名称、参数和代码。
While...Wend 语句 | 只要给定的条件为 True，便执行一串语句。
With 语句 | 对单个的对象执行一串语句。

© 1998 Microsoft Corporation. All rights reserved..


特性信息

特性信息 		VBScript 语言参考
版本信息

VBScript 特性
未包含在 VBScript 中的 VBA 特性
未包含在 VBA 中的 VBScript 特性
Microsoft Scripting 运行时库特性


关键字字母顺序列表

关键字字母顺序列表 		VBScript 语言参考
版本信息

Abs 函数
加法运算符 (+)
And 运算符
Array 函数
Asc 函数
赋值运算符 (=)
Atn 函数
Call 语句
CBool 函数
CByte 函数
CCur 函数
CDate 函数
CDbl 函数
Chr 函数
CInt 函数
Class 对象
Class 语句
Clear 方法
CLng 函数
颜色常数
比较常数
连接运算符（&）
Const 语句
Cos 函数
CreateObject 函数
CSng 函数
CStr 函数
日期与时间常数
日期格式常数
Date 函数
DateAddFunction
DateDiff 函数
DatePart 函数
DateSerial 函数
DateValue 函数
Day 函数
Description 属性
Dictionary 对象
Dim 语句
除法运算符 (/)
Do...Loop 语句
Empty
Eqv 运算符
Erase 语句
Err 对象
Eval 函数
Execute 方法
Execute 语句
Exit 语句
Exp 函数
乘幂运算符 (^)
False
FileSystemObject 对象
Filter 函数
FirstIndex 属性
Fix 函数
For...Next 语句
For Each...Next 语句
FormatCurrency 函数
FormatDateTime 函数
FormatNumber 函数
FormatPercent 函数
Function 语句
GetObject 函数
GetRef 函数
Global 属性
Hex 函数
HelpContext 属性
HelpFile 属性
Hour 函数
If...Then...Else 语句
IgnoreCase 属性
Imp 运算符
Initialize 事件
InputBox 函数
InStr 函数
InStrRev 函数
Int 函数
整除运算符 (\)
Is 运算符
IsArray 函数
IsDate 函数
IsEmpty 函数
IsNull 函数
IsNumeric 函数
IsObject 函数
Join 函数
LBound 函数
LCase 函数
Left 函数
Len 函数
Length 属性
LoadPicture 函数
Log 函数
LTrim 函数
Match 对象
Matches 集合
Mid 函数
Minute 函数
杂项常数
Mod 运算符
Month 函数
MonthName 函数
MsgBox 常数
MsgBox 函数
乘法运算符 (*)
求反运算符 (-)
Not 运算符
Now 函数
Nothing
Null
Number 属性
Oct 函数
On Error 语句
运算符优先级
Option Explicit 语句
Or 运算符
Pattern 属性
Private 语句
PropertyGet 语句
PropertyLet 语句
PropertySet 语句
Public 语句
Raise 方法
Randomize 语句
ReDim 语句
RegExp 对象
Rem 语句
Replace 函数
Replace 方法
RGB 函数
Right 函数
Rnd 函数
Round 函数
RTrim 函数
ScriptEngine 函数
ScriptEngineBuildVersion 函数
ScriptEngineMajorVersion 函数
ScriptEngineMinorVersion 函数
Second 函数
Select Case 语句
Set 语句
Sgn 函数
Sin 函数
Source 属性
Space 函数
Split 函数
Sqr 函数
StrComp 函数
String 常数
String 函数
StrReverse 函数
Sub 语句
减法运算符 (-)
Tan 函数
Terminate 事件
Test 方法
Time 函数
Timer 函数
TimeSerial 函数
TimeValue 函数
Trim 函数
三态常数
True
TypeName 函数
UBound 函数
UCase 函数
Value 属性
VarType 常数
VarType 函数
VBScript 常数
Weekday 函数
WeekdayName 函数
While...Wend 语句
With 语句
Xor 运算符
Year 函数


常数

常数 		VBScript 语言参考
版本信息

颜色常数
比较常数
日期与时间常数
时间格式常数
杂类常数
消息框常数
字符串常数
三态常数
VarType 常数
VBScript 常数


方法

事件 		VBScript 语言参考
版本信息

Initialize事件
Terminate事件


函数

函数 		VBScript 语言参考
版本信息

Abs 函数
Array 函数
Asc 函数
Atn 函数
CBool 函数
CByte 函数
CCur 函数
CDate 函数
CDbl 函数
Chr 函数
CInt 函数
CLng 函数
Cos 函数
CreateObject 函数
CSng 函数
CStr 函数
Date 函数
DateAddFunction
DateDiff 函数
DatePart 函数
DateSerial 函数
DateValue 函数
Day 函数
Eval 函数
Exp 函数
Filter 函数
Fix 函数
FormatCurrency 函数
FormatDateTime 函数
FormatNumber 函数
FormatPercent 函数
GetObject 函数
GetRef 函数
Hex 函数
Hour 函数
InputBox 函数
InStr 函数
InStrRev 函数
Int 函数
IsArray 函数
IsDate 函数
IsEmpty 函数
IsNull 函数
IsNumeric 函数
IsObject 函数
Join 函数
LBound 函数
LCase 函数
Left 函数
Len 函数
LoadPicture 函数
Log 函数
LTrim 函数
Mid 函数
Minute 函数
Month 函数
MonthName 函数
MsgBox 函数
Now 函数
Oct 函数
Replace 函数
RGB 函数
Right 函数
Rnd 函数
Round 函数
RTrim 函数
ScriptEngine 函数
ScriptEngineBuildVersion 函数
ScriptEngineMajorVersion 函数
ScriptEngineMinorVersion 函数
Second 函数
Sgn 函数
Sin 函数
Space 函数
Split 函数
Sqr 函数
StrComp 函数
String 函数
StrReverse 函数
Tan 函数
Time 函数
Timer 函数
TimeSerial 函数
TimeValue 函数
Trim 函数
TypeName 函数
UBound 函数
UCase 函数
VarType 函数
Weekday 函数
WeekdayName 函数
Year 函数


方法

方法 		VBScript 语言参考
版本信息

Clear 方法
Execute 方法
Raise 方法
Replace 方法
Test 方法


对象

对象 		VBScript 语言参考
版本信息

Class 对象
Dictionary 对象
Err 对象
FileSystemObject 对象
Match 对象
Matches 集合
RegExp 对象


运算符

运算符 		VBScript 语言参考
版本信息

加法运算符 (+)
AND 运算符
赋值运算符 (=)
连接运算符 (&)
除法运算符 (/)
Eqv 运算符
求幂运算符 (^)
Imp 运算符
整除运算符 (\)
Is 运算符
MOD 运算符
乘法运算符 (*)
取相反数运算符 (-)
NOT 运算符
运算优先级
OR 运算符
减法运算符 (-)
XOR 运算符


属性

属性 		VBScript 语言参考
版本信息

Description 属性
FirstIndex 属性
Global 属性
HelpContext 属性
HelpFile 属性
IgnoreCase 属性
Length 属性
Number 属性
Pattern 属性
Source 属性
Value 属性


语句

语句 		VBScript 语言参考
版本信息

Call 语句
Class 语句
Const 语句
Dim 语句
Do...Loop 语句
Erase 语句
Execute 语句
Exit 语句
For...Next 语句
For Each...Next 语句
Function 语句
If...Then...Else 语句
On Error 语句
Option Explicit 语句
Private 语句
Property Get 语句
Property Let 语句
Property Set 语句
Public 语句
Randomize 语句
ReDim 语句
Rem 语句
Select Case 语句
Set 语句
Sub 语句
While...Wend 语句
With 语句


VBScript 教程

VBScript 教程 		VBScript 语言参考

什么是 VBScript？
在 HTML 页面中添加 VBscript 代码

VBScript 基础教程

VBScript 数据类型
VBScript 变量
VBScript 常数
VBScript 运算符
使用条件语句
使用循环语句
VBScript 过程
VBScript 编码约定

在 Internet Explorer 中使用 VBScript

VBScript 页面的简单样例
VBScript 与窗体
在 VBScript 中使用对象


什么是 VBScript？

什么是 VBScript？ 		VBScript 教程
下一页

Microsoft Visual Basic Scripting Edition 是程序开发语言 Visual Basic 家族的最新成员，它将灵活的脚本应用于更广泛的领域，包括 Microsoft Internet Explorer 中的 Web 客户机脚本和 Microsoft Internet Information Server 中的 Web 服务器 Script。
易学易用
如果您已了解 Visual Basic 或 Visual Basic for Applications，就会很快熟悉 VBScript。即使您没有学过 Visual Basic，只要学会 VBScript，就能够使用所有的 Visual Basic 语言进行程序设计。虽然您可以从本教程的几个 Web 页面中学习 VBscript，但是本教程并没有告诉您如何编程。要学习编程，请阅读由 Microsoft Press 出版的《Step by Step》。
ActiveX Script
VBScript 使用 ActiveX(R)脚本与宿主应用程序对话。使用 ActiveX Script，浏览器和其他宿主应用程序不再需要每个脚本部件的特殊集成代码。ActiveX脚本使宿主可以编译 Script、获取和调用入口点及管理开发者可用的命名空间。通过 ActiveX Script，语言厂商可以建立标准脚本运行时语言。Microsoft 将提供 VBScript 的运行时支持。Microsoft 正在与多个 Internet 组一起定义 ActiveX脚本标准以使脚本引擎可以互换。 ActiveX脚本可用在 Microsoft(R) Internet Explorer 和 Microsoft(R) Internet Information Server 中。
其他应用程序和浏览器中的 VBScript
作为开发者，您可以在您的产品中免费使用 VBScript 源实现程序。Microsoft 为 32 位 Windows(R) API、16 位 Windows API 和 Macintosh(R) 提供 VBscript 的二进制实现程序。VBScript 与 World Wide Web 浏览器集成在一起。VBScript 和 ActiveX脚本也可以在其他应用程序中作为普通脚本语言使用。


在 HTML 页面中添加 VBScript 代码

在 HTML 页面中添加 VBScript 代码 		VBScript 教程
上一页
下一页

SCRIPT 元素用于将 VBScript 代码添加到 HTML 页面中。
<SCRIPT> 标记
VBScript 代码写在成对的 <SCRIPT> 标记之间。例如，以下代码为一个测试传递日期的过程：

<SCRIPT LANGUAGE="VBScript">
<!--
   Function CanDeliver(Dt)
      CanDeliver = (CDate(Dt) - Now()) > 2
   End Function
-->
</SCRIPT>
代码的开始和结束部分都有 <SCRIPT> 标记。LANGUAGE 属性用于指定所使用的脚本语言。由于浏览器能够使用多种脚本语言，所以必须在此指定所使用的脚本语言。注意 CanDeliver 函数被嵌入在注释标记（<!-- 和 -->）中。这样能够避免不能识别 <SCRIPT> 标记的浏览器将代码显示在页面中。

因为以上示例是一个通用函数（不依赖于任何窗体控件），所以可以将其包含在页面的 HEAD 部分：

<HTML>
<HEAD>
<TITLE>订购</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
   Function CanDeliver(Dt)
      CanDeliver = (CDate(Dt) - Now()) > 2
   End Function
-->
</SCRIPT>
</HEAD>
<BODY>
...
SCRIPT 块可以出现在 HTML 页面的任何地方（BODY 或 HEAD 部分之中）。然而最好将所有的一般目标脚本代码放在 HEAD 部分中，以使所有脚本代码集中放置。这样可以确保在 BODY 部分调用代码之前所有脚本代码都被读取并解码。

上述规则的一个值得注意的例外情况是，在窗体中提供内部代码以响应窗体中对象的事件。例如，以下示例在窗体中嵌入脚本代码以响应窗体中按钮的单击事件：

<HTML>
<HEAD>
<TITLE>测试按钮事件</TITLE>
</HEAD>
<BODY>
<FORM NAME="Form1">
   <INPUT TYPE="Button" NAME="Button1" VALUE="单击">
   <SCRIPT FOR="Button1" EVENT="onClick" LANGUAGE="VBScript">
      MsgBox "按钮被单击！"
   </SCRIPT>
</FORM>
</BODY>
</HTML>
大多数脚本代码在 Sub 或 Function 过程中，仅在其他代码要调用它时执行。然而，也可以将 VBScript 代码放在过程之外、SCRIPT 块之中。这类代码仅在 HTML 页面加载时执行一次。这样就可以在加载 Web 页面时初始化数据或动态地改变页面的外观。


VBScript 数据类型

VBScript 数据类型 		VBScript 教程
上一页
下一页

什么是 VBScript 数据类型？
VBScript 只有一种数据类型，称为 Variant。Variant 是一种特殊的数据类型，根据使用的方式，它可以包含不同类别的信息。因为 Variant 是 VBScript 中唯一的数据类型，所以它也是 VBScript 中所有函数的返回值的数据类型。

最简单的 Variant 可以包含数字或字符串信息。Variant 用于数字上下文中时作为数字处理，用于字符串上下文中时作为字符串处理。这就是说，如果使用看起来象是数字的数据，则 VBScript 会假定其为数字并以适用于数字的方式处理。与此类似，如果使用的数据只可能是字符串，则 VBScript 将按字符串处理。当然，也可以将数字包含在引号 (" ") 中使其成为字符串。

Variant 子类型
除简单数字或字符串以外，Variant 可以进一步区分数值信息的特定含义。例如使用数值信息表示日期或时间。此类数据在与其他日期或时间数据一起使用时，结果也总是表示为日期或时间。当然，从 Boolean 值到浮点数，数值信息是多种多样的。Variant 包含的数值信息类型称为子类型。大多数情况下，可将所需的数据放进 Variant 中，而 Variant 也会按照最适用于其包含的数据的方式进行操作。

下表显示 Variant 包含的数据子类型：

子类型 | 描述
Empty | 未初始化的 Variant。对于数值变量，值为 0；对于字符串变量，值为零长度字符串 ("")。
Null | 不包含任何有效数据的 Variant。
Boolean | 包含 True 或 False。
Byte | 包含 0 到 255 之间的整数。
Integer | 包含 -32,768 到 32,767 之间的整数。
Currency | -922,337,203,685,477.5808 到 922,337,203,685,477.5807。
Long | 包含 -2,147,483,648 到 2,147,483,647 之间的整数。
Single | 包含单精度浮点数，负数范围从 -3.402823E38 到 -1.401298E-45，正数范围从 1.401298E-45 到 3.402823E38。
Double | 包含双精度浮点数，负数范围从 -1.79769313486232E308 到 -4.94065645841247E-324，正数范围从 4.94065645841247E-324 到 1.79769313486232E308。
Date (Time) | 包含表示日期的数字，日期范围从公元 100 年 1 月 1 日到公元 9999 年 12 月 31 日。
String | 包含变长字符串，最大长度可为 20 亿个字符。
Object | 包含对象。
Error | 包含错误号。
您可以使用转换函数来转换数据的子类型。另外，可使用 VarType 函数返回数据的 Variant 子类型。


VBScript 变量

VBScript 变量 		VBScript 教程
上一页
下一页

什么是变量？
变量是一种使用方便的占位符，用于引用计算机内存地址，该地址可以存储脚本运行时可更改的程序信息。例如，可以创建一个名为 ClickCount 的变量来存储用户单击 Web 页面上某个对象的次数。使用变量并不需要了解变量在计算机内存中的地址，只要通过变量名引用变量就可以查看或更改变量的值。在 VBScript 中只有一个基本数据类型，即 Variant，因此所有变量的数据类型都是 Variant。
声明变量
声明变量的一种方式是使用 Dim 语句、Public 语句和 Private 语句在脚本中显式声明变量。例如：
 Dim DegreesFahrenheit
声明多个变量时，使用逗号分隔变量。例如：
 Dim Top, Bottom, Left, Right
另一种方式是通过直接在脚本中使用变量名这一简单方式隐式声明变量。这通常不是一个好习惯，因为这样有时会由于变量名被拼错而导致在运行脚本时出现意外的结果。因此，最好使用 Option Explicit 语句显式声明所有变量，并将其作为脚本的第一条语句。
命名规则
变量命名必须遵循 VBScript 的标准命名规则。变量命名必须遵循：
  • 第一个字符必须是字母。
  • 不能包含嵌入的句点。
  • 长度不能超过 255 个字符。
  • 在被声明的作用域内必须唯一。
变量的作用域与存活期
变量的作用域由声明它的位置决定。如果在过程中声明变量，则只有该过程中的代码可以访问或更改变量值，此时变量具有局部作用域并被称为过程级变量。如果在过程之外声明变量，则该变量可以被脚本中所有过程所识别，称为 Script 级变量，具有脚本级作用域。

变量存在的时间称为存活期。Script 级变量的存活期从被声明的一刻起，直到脚本运行结束。对于过程级变量，其存活期仅是该过程运行的时间，该过程结束后，变量随之消失。在执行过程时，局部变量是理想的临时存储空间。可以在不同过程中使用同名的局部变量，这是因为每个局部变量只被声明它的过程识别。

给变量赋值
创建如下形式的表达式给变量赋值：变量在表达式左边，要赋的值在表达式右边。例如：
 B = 200
标量变量和数组变量
多数情况下，只需为声明的变量赋一个值。只包含一个值的变量被称为标量变量。有时候，将多个相关值赋给一个变量更为方便，因此可以创建包含一系列值的变量，称为数组变量。数组变量和标量变量是以相同的方式声明的，唯一的区别是声明数组变量时变量名后面带有括号 ( )。下例声明了一个包含 11 个元素的一维数组：
 Dim A(10)
虽然括号中显示的数字是 10，但由于在 VBScript 中所有数组都是基于 0 的，所以这个数组实际上包含 11 个元素。在基于 0 的数组中，数组元素的数目总是括号中显示的数目加 1。这种数组被称为固定大小的数组。

在数组中使用索引为数组的每个元素赋值。从 0 到 10，将数据赋给数组的元素，如下所示：

 A(0) = 256
 A(1) = 324
 A(2) = 100
 . . .
 A(10) = 55
与此类似，使用索引可以检索到所需的数组元素的数据。例如：
 . . .
 SomeVariable = A(8)
 . . .
数组并不仅限于一维。数组的维数最大可以为 60（尽管大多数人不能理解超过 3 或 4 的维数）。声明多维数组时用逗号分隔括号中每个表示数组大小的数字。在下例中，MyTable 变量是一个有 6 行和 11 列的二维数组：
 Dim MyTable(5, 10)
在二维数组中，括号中第一个数字表示行的数目，第二个数字表示列的数目。

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

 Dim MyArray()
 ReDim AnotherArray()
要使用动态数组，必须随后使用 ReDim 确定维数和每一维的大小。在下例中，ReDim 将动态数组的初始大小设置为 25，而后面的 ReDim 语句将数组的大小重新调整为 30，同时使用 Preserve 关键字在重新调整大小时保留数组的内容。
 ReDim MyArray(25)
 . . .
 ReDim Preserve MyArray(30)
重新调整动态数组大小的次数是没有任何限制的，但是应注意：将数组的大小调小时，将会丢失被删除元素的数据。


VBScript 常数

VBScript 常数 		VBScript 教程
上一页
下一页

什么是常数？
常数是具有一定含义的名称，用于代替数字或字符串，其值从不改变。VBScript 定义了许多固有常数。详细信息，请参阅 VBScript 语言参考。
创建常数
您可以使用 Const 语句在 VBScript 中创建用户自定义常数。使用 Const 语句可以创建名称具有一定含义的字符串型或数值型常数，并给它们赋原义值。例如：
Const MyString = "这是一个字符串。"
Const MyAge = 49
请注意字符串文字包含在两个引号 (" ") 之间。这是区分字符串型常数和数值型常数的最明显的方法。日期文字和时间文字包含在两个井号 (#) 之间。例如：
Const CutoffDate = #6-1-97#
最好采用一个命名方案以区分常数和变量。这样可以避免在运行脚本时对常数重新赋值。例如，可以使用“vb”或“con”作常数名的前缀，或将常数名的所有字母大写。将常数和变量区分开可以在开发复杂的脚本时避免混乱。


VBScript 运算符

VBScript 运算符 		VBScript 教程
上一页
下一页

VBScript 有一套完整的运算符，包括算术运算符、比较运算符、连接运算符和逻辑运算符。
运算符优先级
当表达式包含多个运算符时，将按预定顺序计算每一部分，这个顺序被称为运算符优先级。可以使用括号越过这种优先级顺序，强制首先计算表达式的某些部分。运算时，总是先执行括号中的运算符，然后再执行括号外的运算符。但是，在括号中仍遵循标准运算符优先级。

当表达式包含多种运算符时，首先计算算术运算符，然后计算比较运算符，最后计算逻辑运算符。所有比较运算符的优先级相同，即按照从左到右的顺序计算比较运算符。算术运算符和逻辑运算符的优先级如下所示：

算术运算符 | 比较运算符 | 逻辑运算符
描述 | 符号 | 描述 | 符号 | 描述 | 符号
求幂 ^ 等于 = 逻辑非 Not
负号 - 不等于 <> 逻辑与 And
乘 * 小于 < 逻辑或 Or
除 / 大于 > 逻辑异或 Xor
整除 \ 小于等于 <= 逻辑等价 Eqv
求余 Mod 大于等于 >= 逻辑隐含 Imp
加 + 对象引用比较 Is
减 -
字符串连接 &
当乘号与除号同时出现在一个表达式中时，按从左到右的顺序计算乘、除运算符。同样当加与减同时出现在一个表达式中时，按从左到右的顺序计算加、减运算符。

字符串连接 (&) 运算符不是算术运算符，但是在优先级顺序中，它排在所有算术运算符之后和所有比较运算符之前。Is 运算符是对象引用比较运算符。它并不比较对象或对象的值，而只是进行检查，判断两个对象引用是否引用同一个对象。


使用条件语句

使用条件语句 		VBScript 教程
上一页
下一页

控制程序执行
使用条件语句和循环语句可以控制脚本的流程。使用条件语句可以编写进行判断和重复操作的 VBScript 代码。在 VBScript 中可使用以下条件语句：
  • If...Then...Else 语句
  • Select Case 语句
使用 If...Then...Else 进行判断
If...Then...Else 语句用于计算条件是否为 True 或 False，并且根据计算结果指定要运行的语句。通常，条件是使用比较运算符对值或变量进行比较的表达式。有关比较运算符的详细信息，请参阅比较运算符。If...Then...Else 语句可以按照需要进行嵌套。

条件为 True 时运行语句
要在条件为 True 时运行单行语句，可使用 If...Then...Else 语句的单行语法。下例示范了单行语法。请注意此例省略了关键字 Else。
 Sub FixDate()
     Dim myDate
     myDate = #2/13/95#
     If myDate < Now Then myDate = Now
 End Sub
要运行多行代码，必须使用多行（或块）语法。多行（或块）语法包含 End If 语句，如下所示：
 Sub AlertUser(value)
     If value = 0 Then
         AlertLabel.ForeColor = vbRed
         AlertLabel.Font.Bold = True
         AlertLabel.Font.Italic = True
     End If
 End Sub
条件为 True 和 False 时分别运行某些语句
可以使用 If...Then...Else 语句定义两个可执行语句块：条件为 True 时运行某一语句块，条件为 False 时运行另一语句块。
 Sub AlertUser(value)
     If value = 0 Then
         AlertLabel.ForeColor = vbRed
         AlertLabel.Font.Bold = True
         AlertLabel.Font.Italic = True
     Else
         AlertLabel.Forecolor = vbBlack
         AlertLabel.Font.Bold = False
         AlertLabel.Font.Italic = False
     End If
 End Sub
对多个条件进行判断
If...Then...Else 语句的一种变形允许您从多个条件中选择，即添加 ElseIf 子句以扩充 If...Then...Else 语句的功能，使您可以控制基于多种可能的程序流程。例如：
 Sub ReportValue(value)
     If value = 0 Then
         MsgBox value
     ElseIf value = 1 Then
         MsgBox value
     ElseIf value = 2 then
         Msgbox value
     Else
         Msgbox "数值超出范围！"
     End If
可以添加任意多个 ElseIf 子句以提供多种选择。使用多个 ElseIf 子句经常会变得很累赘。在多个条件中进行选择的更好方法是使用 Select Case 语句。
使用 Select Case 进行判断
Select Case 结构提供了 If...Then...ElseIf 结构的一个变通形式，可以从多个语句块中选择执行其中的一个。Select Case 语句提供的功能与 If...Then...Else 语句类似，但是可以使代码更加简练易读。

Select Case 结构在其开始处使用一个只计算一次的简单测试表达式。表达式的结果将与结构中每个 Case 的值比较。如果匹配，则执行与该 Case 关联的语句块：

 Select Case Document.Form1.CardType.Options(SelectedIndex).Text
    Case "MasterCard"
        DisplayMCLogo
        ValidateMCAccount
    Case "Visa"
        DisplayVisaLogo
        ValidateVisaAccount
    Case "American Express"
        DisplayAMEXCOLogo
        ValidateAMEXCOAccount
    Case Else
        DisplayUnknownImage
        PromptAgain
End Select
请注意 Select Case 结构只计算开始处的一个表达式（只计算一次），而 If...Then...ElseIf 结构计算每个 ElseIf 语句的表达式，这些表达式可以各不相同。仅当每个 ElseIf 语句计算的表达式都相同时，才可以使用 Select Case 结构代替 If...Then...ElseIf 结构。


使用循环语句

使用循环语句 		VBScript 教程
上一页
下一页

使用循环重复执行代码
循环用于重复执行一组语句。循环可分为三类：一类在条件变为 False 之前重复执行语句，一类在条件变为 True 之前重复执行语句，另一类按照指定的次数重复执行语句。

在 VBScript 中可使用下列循环语句：

  • Do...Loop： 当（或直到）条件为 True 时循环。
  • While...Wend： 当条件为 True 时循环。
  • For...Next： 指定循环次数，使用计数器重复运行语句。
  • For Each...Next： 对于集合中的每项或数组中的每个元素，重复执行一组语句。
使用 Do 循环
可以使用 Do...Loop 语句多次（次数不定）运行语句块。当条件为 True 时或条件变为 True 之前，重复执行语句块。
当条件为 True 时重复执行语句
While 关键字用于检查 Do...Loop 语句中的条件。有两种方式检查条件：在进入循环之前检查条件（如下面的 ChkFirstWhile 示例）；或者在循环至少运行完一次之后检查条件（如下面的 ChkLastWhile 示例）。在 ChkFirstWhile 过程中，如果 myNum 的初始值被设置为 9 而不是 20，则永远不会执行循环体中的语句。在 ChkLastWhile 过程中，循环体中的语句只会执行一次，因为条件在检查时已经为 False。
 Sub ChkFirstWhile()
     Dim counter, myNum
     counter = 0
     myNum = 20
     Do While myNum > 10
         myNum = myNum - 1
         counter = counter + 1
     Loop
     MsgBox "循环重复了 " & counter & " 次。"
 End Sub

 Sub ChkLastWhile()
     Dim counter, myNum
     counter = 0
     myNum = 9
     Do
         myNum = myNum - 1
         counter = counter + 1
     Loop While myNum > 10
     MsgBox "循环重复了 " & counter & " 次。"
 End Sub
重复执行语句直到条件变为 True
Until 关键字用于检查 Do...Loop 语句中的条件。有两种方式检查条件：在进入循环之前检查条件（如下面的 ChkFirstUntil 示例）；或者在循环至少运行完一次之后检查条件（如下面的 ChkLastUntil 示例）。只要条件为 False，就会进行循环。
 Sub ChkFirstUntil()
     Dim counter, myNum
     counter = 0
     myNum = 20
     Do Until myNum = 10
         myNum = myNum - 1
         counter = counter + 1
     Loop
     MsgBox "循环重复了 " & counter & " 次。"
 End Sub

 Sub ChkLastUntil()
     Dim counter, myNum
     counter = 0
     myNum = 1
     Do
         myNum = myNum + 1
         counter = counter + 1
     Loop Until myNum = 10
     MsgBox "循环重复了 " & counter & " 次。"
 End Sub
退出循环
Exit Do 语句用于退出 Do...Loop 循环。因为通常只是在某些特殊情况下要退出循环（例如要避免死循环），所以可在 If...Then...Else 语句的 True 语句块中使用 Exit Do 语句。如果条件为 False，循环将照常运行。

在下面的示例中，myNum 的初始值将导致死循环。If...Then...Else 语句检查此条件，防止出现死循环。

 Sub ExitExample()
     Dim counter, myNum
     counter = 0
     myNum = 9
     Do Until myNum = 10
         myNum = myNum - 1
         counter = counter + 1
         If myNum < 10 Then Exit Do
     Loop
     MsgBox "循环重复了 " & counter & " 次。"
 End Sub
使用 While...Wend
While...Wend 语句是为那些熟悉其用法的用户提供的。但是由于 While...Wend 缺少灵活性，所以建议最好使用 Do...Loop 语句。
使用 For...Next
For...Next 语句用于将语句块运行指定的次数。在循环中使用计数器变量，该变量的值随每一次循环增加或减少。

例如，下面的示例将过程 MyProc 重复执行 50 次。For 语句指定计数器变量 x 及其起始值与终止值。Next 语句使计数器变量每次加 1。

 Sub DoMyProc50Times()
     Dim x
     For x = 1 To 50
         MyProc
     Next
 End Sub
关键字 Step 用于指定计数器变量每次增加或减少的值。在下面的示例中，计数器变量 j 每次加 2。循环结束后，total 的值为 2、4、6、8 和 10 的总和。
 Sub TwosTotal()
     Dim j, total
     For j = 2 To 10 Step 2
         total = total + j
     Next
     MsgBox "总和为 " & total & "。"
 End Sub
要使计数器变量递减，可将 Step 设为负值。此时计数器变量的终止值必须小于起始值。在下面的示例中，计数器变量 myNum 每次减 2。循环结束后，total 的值为 16、14、12、10、8、6、4 和 2 的总和。

 Sub NewTotal()
     Dim myNum, total
     For myNum = 16 To 2 Step -2
         total = total + myNum
     Next
     MsgBox "总和为 " & total & "。"
 End Sub
Exit For 语句用于在计数器达到其终止值之前退出 For...Next 语句。因为通常只是在某些特殊情况下（例如在发生错误时）要退出循环，所以可以在 If...Then...Else 语句的 True 语句块中使用 Exit For 语句。如果条件为 False，循环将照常运行。

使用 For Each...Next
For Each...Next 循环与 For...Next 循环类似。For Each...Next 不是将语句运行指定的次数，而是对于数组中的每个元素或对象集合中的每一项重复一组语句。这在不知道集合中元素的数目时非常有用。

在以下示例中，Dictionary 对象的内容用于将文本分别放置在多个文本框中：

 <HTML>
 <HEAD><TITLE>窗体与元素</TITLE></HEAD>
 <SCRIPT LANGUAGE="VBScript">
 <!--
 Sub cmdChange_OnClick
    Dim d                   '创建一个变量
    Set d = CreateObject("Scripting.Dictionary")
    d.Add "0", "Athens"     '添加键和项目
    d.Add "1", "Belgrade"
    d.Add "2", "Cairo"

    For Each I in d
        Document.frmForm.Elements(I).Value = D.Item(I)
    Next
 End Sub
 -->
 </SCRIPT>
 <BODY>
 <CENTER>
 <FORM NAME="frmForm"

 <Input Type = "Text"><p>
 <Input Type = "Text"><p>
 <Input Type = "Text"><p>
 <Input Type = "Text"><p>
 <Input Type = "Button" NAME="cmdChange" VALUE="单击此处"><p>
 </FORM>
 </CENTER>
 </BODY>
 </HTML>


VBScript 过程

VBScript 过程 		VBScript 教程
上一页
下一页

过程分类
在 VBScript 中，过程被分为两类：Sub 过程和 Function 过程。
Sub 过程
Sub 过程是包含在 Sub 和 End Sub 语句之间的一组 VBScript 语句，执行操作但不返回值。Sub 过程可以使用参数（由调用过程传递的常数、变量或表达式）。如果 Sub 过程无任何参数，则 Sub 语句必须包含空括号 ()。

下面的 Sub 过程使用两个固有的（或内置的）VBScript 函数，即 MsgBox 和 InputBox，来提示用户输入信息。然后显示根据这些信息计算的结果。计算由使用 VBScript 创建的 Function 过程完成。此过程在以下讨论之后演示。

 Sub ConvertTemp()
    temp = InputBox("请输入华氏温度。", 1)
    MsgBox "温度为 " & Celsius(temp) & " 摄氏度。"
 End Sub
Function 过程
Function 过程是包含在 Function 和 End Function 语句之间的一组 VBScript 语句。Function 过程与 Sub 过程类似，但是 Function 过程可以返回值。Function 过程可以使用参数（由调用过程传递的常数、变量或表达式）。如果 Function 过程无任何参数，则 Function 语句必须包含空括号 ()。Function 过程通过函数名返回一个值，这个值是在过程的语句中赋给函数名的。Function 返回值的数据类型总是 Variant。

在下面的示例中，Celsius 函数将华氏度换算为摄氏度。Sub 过程 ConvertTemp 调用此函数时，包含参数值的变量被传递给函数。换算结果返回到调用过程并显示在消息框中。

 Sub ConvertTemp()
     temp = InputBox("请输入华氏温度。", 1)
     MsgBox "温度为 " & Celsius(temp) & " 摄氏度。"
 End Sub

 Function Celsius(fDegrees)
     Celsius = (fDegrees - 32) * 5 / 9
 End Function
过程的数据进出
给过程传递数据的途径是使用参数。参数被作为要传递给过程的数据的占位符。参数名可以是任何有效的变量名。使用 Sub 语句或 Function 语句创建过程时，过程名之后必须紧跟括号。括号中包含所有参数，参数间用逗号分隔。例如，在下面的示例中，fDegrees 是传递给 Celsius 函数的值的占位符：
 Function Celsius(fDegrees)
    Celsius = (fDegrees - 32) * 5 / 9
 End Function
要从过程获取数据，必须使用 Function 过程。请记住，Function 过程可以返回值；Sub 过程不返回值。
在代码中使用 Sub 和 Function 过程
调用 Function 过程时，函数名必须用在变量赋值语句的右端或表达式中。例如：

 Temp = Celsius(fDegrees)
或
 MsgBox "温度为 " & Celsius(fDegrees) & " 摄氏度。"
调用 Sub 过程时，只需输入过程名及所有参数值，参数值之间使用逗号分隔。不需使用 Call 语句，但如果使用了此语句，则必须将所有参数包含在括号之中。

下面的示例显示了调用 MyProc 过程的两种方式。一种使用 Call 语句；另一种则不使用。两种方式效果相同。

 Call MyProc(firstarg, secondarg)
 MyProc firstarg, secondarg
请注意当不使用 Call 语句进行调用时，括号被省略。


编码约定

VBScript 编码约定 		VBScript 教程
上一页
下一页

什么是编码约定？
编码约定是帮助您使用 Microsoft Visual Basic Scripting Edition 编写代码的一些建议。编码约定包含以下内容：
  • 对象、变量和过程的命名约定
  • 注释约定
  • 文本格式和缩进指南
使用一致的编码约定的主要原因是使脚本或脚本集的结构和编码样式标准化，这样代码易于阅读和理解。使用好的编码约定可以使源代码明白、易读、准确，更加直观且与其他语言约定保持一致。
常数命名约定
VBScript 的早期版本不允许创建用户自定义常数。如果要使用常数，则常数以变量的方式实现，且全部字母大写以和其他变量区分。常数名中的多个单词用下划线 (_) 分隔。例如：
 USER_LIST_MAX
 NEW_LINE
这种标识常数的方法依旧可行，但您还可以选择其他方案，用 Const 语句创建真正的常数。这个约定使用大小写混合的格式，并以“con”作为常数名的前缀。例如：
 conYourOwnConstant
变量命名约定
出于易读和一致性的目的，请在 VBScript 代码中使用以下变量命名约定：

子类型 | 前缀 | 示例
Boolean | bln | blnFound
Byte | byt | bytRasterData
Date (Time) | dtm | dtmStart
Double | dbl | dblTolerance
Error | err | errOrderNum
Integer | int | intQuantity
Long | lng | lngDistance
Object | obj | objCurrent
Single | sng | sngAverage
String | str | strFirstName

变量作用域
变量应定义在尽量小的作用域中。VBScript 变量的作用域如下所示：

作用域 | 声明变量处 | 可见性
过程级 | 事件、函数或子过程 | 在声明变量的过程中可见
Script 级 | HTML 页面的 HEAD 部分，任何过程之外 | 在脚本的所有过程中可见

变量作用域前缀
随着脚本代码长度的增加，有必要快速区分变量的作用域。在类型前缀前面添加一个单字符前缀可以实现这一点，而不致使变量名过长。

作用域 | 前缀 | 示例
过程级 | 无 | dblVelocity
Script 级 | s | sblnCalcInProgress

描述性变量名和过程名
变量名或过程名的主体应使用大小写混合格式，并且尽量完整地描述其目的。另外，过程名应以动词开始，例如 InitNameArray 或 CloseDialog。

对于经常使用的或较长的名称，推荐使用标准缩写以使名称保持在适当的长度内。通常多于 32 个字符的变量名会变得难以阅读。使用缩写时，应确保在整个脚本中保持一致。例如，在一个脚本或脚本集中随意切换 Cnt 和 Count 将造成混乱。

对象命名约定
下表列出了 VBScript 中可能用到的对象命名约定（推荐）：

对象类型 | 前缀 | 示例
3D 面板 | pnl | pnlGroup
动画按钮 | ani | aniMailBox
复选框 | chk | chkReadOnly
组合框、下拉列表框 | cbo | cboEnglish
命令按钮 | cmd | cmdExit
公共对话框 | dlg | dlgFileOpen
框架 | fra | fraLanguage
水平滚动条 | hsb | hsbVolume
图像 | img | imgIcon
标签 | lbl | lblHelpMessage
直线 | lin | linVertical
列表框 | lst | lstPolicyCodes
旋钮 | spn | spnPages
文本框 | txt | txtLastName
垂直滚动条 | vsb | vsbRate
滑块 | sld | sldScale

代码注释约定
所有过程的开始部分都应有描述其功能的简要注释。这些注释并不描述细节信息（如何实现功能），这是因为细节有时要频繁更改。这样就可以避免不必要的注释维护工作以及错误的注释。细节信息由代码本身及必要的内部注释来描述。

当传递给过程的参数的用途不明显，或过程对参数的取值范围有要求时，应加以说明。如果过程改变了函数和变量的返回值（特别是通过参数引用来改变），也应在过程的开始部分描述该返回值。

过程开始部分的注释应包含以下区段标题。相关样例，请参阅后面的“格式化代码”部分。

区段标题 | 注释内容
目的 | 过程的功能（不是实现功能的方法）。
假设 | 其状态影响此过程的外部变量、控件或其他元素的列表。
效果 | 过程对每个外部变量、控件或其他元素的影响效果的列表。
输入 | 每个目的不明显的参数的解释。每个参数都应占据单独一行并有其内部注释。
返回 | 返回值的解释。
请记住以下几点：

  • 每个重要的变量声明都应有内部注释，描述变量的用途。
  • 应清楚地命名变量、控件和过程，仅在说明复杂细节时需要内部注释。
  • 应在脚本的开始部分包含描述该脚本的概述，列举对象、过程、运算法则、对话框和其他系统从属物。有时一段描述运算法则的假码是很有用的。
格式化代码
应尽可能多地保留屏幕空间，但仍允许用代码格式反映逻辑结构和嵌套。以下为几点提示：
  • 标准嵌套块应缩进 4 个空格。
  • 过程的概述注释应缩进 1 个空格。
  • 概述注释后的最高层语句应缩进 4 个空格，每一层嵌套块再缩进 4 个空格。例如：

 '*********************************************************
 ' 目的：    返回指定用户在 UserList 数组中第一次出现的位置。
 ' 输入：    strUserList():   所查找的用户列表。
 '           strTargetUser:   要查找的用户名。
 ' 返回：    strTargetUser 在 strUserList 数组中第一次出现时的索引。
 '           如果目标用户未找到，返回 -1。
 '*********************************************************

 Function intFindUser (strUserList(), strTargetUser)
     Dim i                     ' 循环计数器。
     Dim blnFound	       ' 发现目标的标记。
     intFindUser = -1
     i = 0                     ' 初始化循环计数器。
     Do While i <= Ubound(strUserList) and Not blnFound
         If strUserList(i) = strTargetUser Then
             blnFound = True   ' 标记设为 True。
             intFindUser = i   ' 返回值设为循环计数器。
         End If
         i = i + 1             ' 循环计数器加 1。
     Loop
 End Function


VBScript 页面的简单样例

VBScript 页面的简单样例 		VBScript 教程
上一页
下一页

一个简单页面
使用 Microsoft(R) Internet Explorer 可以查看用以下 HTML 代码制作的页面。如果单击页面上的按钮，可看到 VBScript 的运行结果。
<HTML>
<HEAD><TITLE>一个简单首页</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub Button1_OnClick
        MsgBox "Hello, world!"
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<H3>一个简单首页</H3><HR>
<FORM><INPUT NAME="Button1" TYPE="BUTTON" VALUE="单击此处"></FORM>
</BODY>
</HTML>
结果虽然有点简单：一个对话框显示一个拉丁短语（意为“看起来非常漂亮”）。然而这段代码实际上作了许多事情。

当 Internet Explorer 读取页面时，找到 <SCRIPT> 标记，识别出 VBScript 代码并保存代码。单击按钮时，Internet Explorer 使按钮与代码连接，并运行该过程。

<SCRIPT> 标记中的 Sub 过程是一个事件过程。过程名包含两部分：一部分为按钮名，即 Button1（从 <INPUT> 标记中的 NAME 属性获取），另一部分为事件名，即 OnClick。两部分由下划线 (_) 连接。单击按钮时，Internet Explorer 查找并运行相应的事件过程，即 Button1_OnClick。

Internet Explorer 在 Internet Explorer Scripting 对象模型文档中定义了可用于窗体控件的事件,它们可以在Microsoft(R) Web 站点上找到 (http://www.microsoft.com)。

页面也可以使用控件与过程的组合。VBScript 与窗体显示了控件之间的一些简单交互作用。

向事件附加代码的其他方法
上述的方法也许是最简单和最常用的，但也可以使用另外两种方法向事件附加 VBScript 代码。一种方法是在定义控件的标记中添加较短的内部代码。例如在单击按钮时，下面的 <INPUT> 标记执行与前面示例相同的操作：
<INPUT NAME="Button1" TYPE="BUTTON"
       VALUE="单击此处" OnClick='MsgBox "Mirabile visu."'>
请注意函数调用包含在单引号中，MsgBox 函数的字符串包含在双引号中。只要用冒号 (:) 分隔语句，就可以使用多条语句。

另一种方法是在 <SCRIPT> 标记中指定特定的控件和事件：

<SCRIPT LANGUAGE="VBScript" EVENT="OnClick" FOR="Button1">
<!--
    MsgBox "Mirabile visu."
-->
</SCRIPT>
由于 <SCRIPT> 标记指定了事件和控件，所以不需要再用 Sub 和 End Sub 语句。


VBScript 与窗体

VBScript 与窗体 		VBScript 教程
上一页
下一页

简单验证
使用 Visual Basic Scripting Edition，您可以完成通常要在服务器上进行的大量窗体处理工作，也可以完成不能在服务器上进行的工作。

这是一个简单的客户端验证的样例。HTML 代码的结果是一个文本框和一个按钮。如果使用 Microsoft(R) Internet Explorer 查看用以下代码制作的页面，您会看到一个旁边带有按钮的小文本框。

<HTML>
<HEAD><TITLE>简单验证</TITLE>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub Button1_OnClick
  Dim TheForm
  Set TheForm = Document.ValidForm
  If IsNumeric(TheForm.Text1.Value) Then
    If TheForm.Text1.Value < 1 Or TheForm.Text1.Value > 10 Then
      MsgBox "请输入一个 1 到 10 之间的数字。"
    Else
      MsgBox "谢谢。"
    End If
  Else
    MsgBox "请输入一个数字。"
  End If
End Sub
-->
</SCRIPT>
</HEAD>
<BODY>
<H3>简单验证</H3><HR>
<FORM NAME="ValidForm">
请输入一个 1 到 10 之间的数字：
<INPUT NAME="Text1" TYPE="TEXT" size=3 class='9v'>
<INPUT NAME="Button1" TYPE="BUTTON" VALUE="提交">
</FORM>
</BODY>
</HTML>
这个文本框与 VBScript 页面的简单样例中示例的不同之处在于文本框的 Value 属性被用于检查输入值。要使用文本框的 Value 属性，代码必须引用文本框的名称。

每次引用文本框时都应写出全称，即 Document.ValidForm.Text1。但是，当多次引用窗体控件时，可以按照以下步骤操作：首先声明一个变量，然后使用 Set 语句将窗体 Document.ValidForm 赋给变量 TheForm，这样就能使用 TheForm.Text1 引用文本框。常规的赋值语句（例如 Dim）在这里无效，必须使用 Set 来保持对对象的引用。

使用数字
请注意以上示例直接检测输入值是否是一个数字：使用 IsNumeric 函数确定文本框中的字符串是否是一个数字。虽然 VBScript 能够自动转换字符串和数字，但检测用户输入值的数据子类型，并且在必要时使用转换函数始终是一个好的习惯。在用文本框的 Value 属性进行加法运算时，应将它显式地转换为数字，这是因为加号 (+) 运算符不但可进行加法操作，而且可进行字符串连接操作。例如，如果 Text1 中包含“1”，Text2 中包含“2”，您将会看到以下结果：
A = Text1.Value + Text2.Value		' A 为“12”
A = CDbl(Text1.Value) + Text2.Value	' A 为 3
验证后将数据传递回服务器
简单验证样例使用的是普通按钮控件。如果使用 Submit 控件，所有数据都会被立即传送到服务器，示例将不会看到数据来进行检查。避免使用 Submit 控件使您可以检查数据，但不能向服务器提交数据。如果要提交数据则需要再添加一行代码，如下所示：
<SCRIPT LANGUAGE="VBScript">
<!--
Sub Button1_OnClick
  Dim TheForm
  Set TheForm = Document.ValidForm
  If IsNumeric(TheForm.Text1.Value) Then
    If TheForm.Text1.Value < 1 Or TheForm.Text1.Value > 10 Then
      MsgBox "请输入一个 1 到 10 之间的数字。"
    Else
      MsgBox "谢谢。"
      TheForm.Submit	' 数据输入正确，传递到服务器。
    End If
  Else
    MsgBox "请输入一个数字。"
  End If
End Sub
-->
</SCRIPT>
在数据输入正确时，代码调用窗体对象的 Submit 方法，将数据传递到服务器。除非在数据被传递到服务器之前判断其正误，否则服务器将处理数据，而不论其正确与否。您可以在 Internet Explorer Scripting 对象模型页面上找到关于 Submit 方法和其他方法的全部信息,它们在 Microsoft(R) Web 站点(http://www.microsoft.com)上可以找到。

到目前为止，您只看到了标准 HTML <FORM> 对象。Internet Explorer 还可以使您利用 ActiveX(R) 控件（以前称为 OLE 控件）和 Java(TM) 对象的全部功能创建页面。


在 VBScript 中使用对象

在 VBScript 中使用对象 		VBScript 教程
上一页

使用对象
无论使用的是 ActiveX(R) 控件（以前称为 OLE 控件）还是 Java(TM) 对象，Microsoft Visual Basic Scripting Edition 和 Microsoft(R) Internet Explorer 都以相同的方式处理它们。如果您使用的是 Internet Explorer 并且安装了 Label 控件，就会看到由以下代码制作的页面。

<OBJECT> 标记用来包含对象，<PARAM> 标记用来设置对象属性的初始值。如果您是 Visual Basic 程序员，您会发现使用 <PARAM> 标记类似于在 Visual Basic 中设置窗体控件的初始属性值。例如，以下代码使用 <OBJECT> 和 <PARAM> 标记将 ActiveX Label 控件添加到页面中：

<OBJECT
    classid="clsid:99B42120-6EC7-11CF-A6C7-00AA00A47DD2"
    id=lblActiveLbl
    width=250
    height=250
    align=left
    hspace=20
    vspace=0
>
<PARAM NAME="Angle" VALUE="90">
<PARAM NAME="Alignment" VALUE="4">
<PARAM NAME="BackStyle" VALUE="0">
<PARAM NAME="Caption" VALUE="一个简单标签">
<PARAM NAME="FontName" VALUE="宋体">
<PARAM NAME="FontSize" VALUE="20">
<PARAM NAME="FontBold" VALUE="1">
<PARAM NAME="FrColor" VALUE="0">
</OBJECT>
象对任何窗体控件一样，可以获取属性、设置属性和调用方法。例如，以下代码包含 <FORM> 控件，可用其对标签控件的两个属性进行操作：
<FORM NAME="LabelControls">
<INPUT TYPE="TEXT" NAME="txtNewText" size=3 class='9v'5>
<INPUT TYPE="BUTTON" NAME="cmdChangeIt" VALUE="更改文本">
<INPUT TYPE="BUTTON" NAME="cmdRotate" VALUE="旋转标签">
</FORM>
通过定义过的窗体，cmdChangeIt 按钮的事件过程可更改标签文本：
<SCRIPT LANGUAGE="VBScript">
<!--
Sub cmdChangeIt_onClick
    Dim TheForm
    Set TheForm = Document.LabelControls
    lblActiveLbl.Caption = TheForm.txtNewText.Value
End Sub
-->
</SCRIPT>
代码将对控件和值的引用限定在窗体中，这与简单验证示例中的代码类似。

多个 ActiveX 控件可用于 Internet Explorer。您可以在 Microsoft(R) Web 站点上 (http://www.microsoft.com) 找到关于属性、方法和事件以及控件类名标识符（CLSID）的全部信息。另外还可以在 Internet Explorer 4.0 Author's Guide and HTML Reference页面上找到有关 <OBJECT> 标记的详细信息。
注意 Internet Explorer 的早期版本要求用大括号 ({}) 将 classid 属性括起来，不符合 W3C 规格。在当前版本中使用大括号则会产生“此页使用了过期版本的 <OBJECT> 标记”信息。


VBScript 运行时库参考

Scripting 运行时库参考 		语言参考
版本信息

特性信息

关键字字母顺序列表

常数

方法

对象

属性

欢迎使用“Scripting 运行时库参考”

这些便利的信息块将帮助您深入研究Scripting 运行时库的不同部分。

你将在“关键字字母顺序列表”下找到Scripting运行时库的所有部分。但是，如果只需要查看某一类的内容，例如对象，则可以查看更为紧凑的分类列表。

怎么使用它呢？单击左边的某个标题即可显示出类目中各项目列表。请从此列表中选择希望查看的主题。在打开了主题之后，可以轻松地链接到其他相关的部分。

下面，请大家试着看一看！可以学习一些语句，琢磨方法的使用，或者发现若干新的函数。您将发现 Scripting 运行时库的功能有多么丰富！

特性 | 描述
Microsoft Scripting 运行时特性 | 特性列表，Microsoft Scripting 运行时库中现有的。
语言成分 | 描述
Add 方法 (Dictionary) | 将主键和条目对添加到 Dictionary 对象中。
Add 方法 (Folders) | 将一个新的 Folder 添加到 Folders 集合中。
AtEndOfLine 属性 | 如果文件指针恰好位于TextStream文件的行结束符号之前，返回True； 否则返回 False。
AtEndOfStream 属性 | 如果文件指针恰好位于TextStream文件的结尾，返回 True； 否则返回False。
Attributes 属性 | 设置或返回文件或文件夹的属性。
AvailableSpace 属性 | 返回某位用户在指定的驱动器或网络共享设备上可以使用的空间。
BuildPath 方法 | 将一个名称添加到已有的路径上。
Close 方法 | 关闭打开的 TextStream 文件。
Column 属性 | 返回TextStream文件中当前字符位置的列号。
CompareMode 属性 | 在Dictionary对象中，为字符串键比较设置并返回比较模式。
Copy 方法 | 将指定的文件或文件夹复制到其他位置上。
CopyFile 方法 | 将一个或多个文件复制到其他位置上。
CopyFolder 方法 | 递归地（以包含子目录的方式）将一个文件夹复制到其他位置上。
Count 属性 | 返回集合或 Dictionary 对象中的项目数量。
CreateFolder 方法 | 创建一个文件夹。
CreateTextFile 方法 | 创建指定的文件名，并返回一个 TextStream 对象用于读写该文件。
DateCreated 属性 | 返回指定的文件或文件夹的创建日期与时间。
DateLastAccessed 属性 | 返回指定的文件或文件夹最后一次被访问的日期与时间。
DateLastModified 属性 | 返回指定的文件或文件夹最后一次被修改的日期与时间。
Delete 方法 | 删除指定的文件或文件夹。
DeleteFile 方法 | 删除指定的文件。
DeleteFolder 方法 | 删除指定的文件夹及其内容。
Dictionary 对象 | 该对象可以存储数据键，条目对。
Drive 对象 | 提供对磁盘驱动器和网络共享设备的属性的访问。
Drive 属性 | 返回指定的文件或文件夹所在的磁盘的盘符。
DriveExists 方法 | 如果指定的驱动器存在，返回True；否则返回False。
DriveLetter 属性 | 返回一个物理本地驱动器或网络共享设备的驱动器盘符。
Drives 集合 | 所有可用的驱动器的只读集合。
Drives 属性 | 返回一个 Drives 集合，其中包含本机可用的所有 Drive 对象。
驱动器类型常数 | 定义宿主计算机上可用的不同驱动器类型，例如 Fixed（固定）、Removable（活动）、CD-ROM等。
DriveType 属性 | 其返回值指示了指定的驱动器的类型。
Exists 方法 | 如果 Dictionary 对象中存在指定的键，返回 True； 否则返回 False。
文件属性常数 | 定义各种文件属性，如 Hidden（隐藏）、Read-Only（只读）等。
文件输入/输出常数 | 定义与文件输入/输出有关的常数。
FileExists 方法 | 如果存在指定的文件，返回 True； 否则，返回 False。
File 对象 | 提供对文件的所有属性的访问。
Files 集合 | 文件夹中的所有 File 对象的集合。
Files 属性 | 返回一个 Files 集合，包含指定的文件夹中包含的所有 File 对象，其中包括了具有隐藏或系统属性的文件对象。
FileSystemObject 对象 | 提供了对计算机的文件系统的访问。
FileSystemObject 常数 | 用于 File System automation 对象的一组常数
FileSystem 属性 | 返回指定的驱动器使用的文件系统的类型。
Folder 对象 | 提供对文件夹的所有属性的访问。
Folders 集合 | 一个Folder对象中包含的所有 Folder 对象的集合。
FolderExists 方法 | 如果指定的文件夹存在，返回 True；否则 返回 False。
FreeSpace 属性 | 返回某位用户在指定的驱动器或网络共享设备上可用的自由空间数量。
GetAbsolutePathName 方法 | 按照提供的路径规范返回完整的、无二义的路径。
GetBaseName 方法 | 按照提供的路径规范返回一个字符串，其中包含文件的基本名称 （无文件扩展名）或文件夹。
GetDrive 方法 | 返回指定的路径中的驱动器所对应的Drive 对象。
GetDriveName 方法 | 返回一个字符串，其中包含指定的路径的驱动器名称。
GetExtensionName 方法 | 返回一个字符串，其中包含路径中的最后一个成分的扩展名。
GetFile 方法 | 返回与指定的路径中的文件相对应的File对象。
GetFileName 方法 | 返回指定的路径中除驱动器说明以外的最后一个文件名或文件夹。
GetFolder 方法 | 返回与指定的路径中的文件夹所对应的Folder 对象。
GetParentFolderName 方法 | 返回一个字符串，其中包含指定的路径中最后一个文件或文件夹的上一层文件夹。
GetSpecialFolder 方法 | 返回所指定的特殊文件夹。
GetTempName 方法 | 返回随机生成的一个临时文件或文件夹。
IsReady 属性 | 如果指定的驱动器处于就绪状态，返回True； 否则，返回。
IsRootFolder 属性 | 如果指定的文件夹为根文件夹，返回 True； 否则，返回 False。
Item 属性 | 为 Dictionary 对象中的指定 key 设置或返回 item。
Items 方法 | 返回一个数组，其中包含 Dictionary 对象中的所有项目。
Key 属性 | 设置 Dictionary 对象中的一个key。
Keys 方法 | 返回一个数组，其中包含 Dictionary 对象中存在的所有键。
Line 属性 | 返回 TextStream 文件的当前行号。
Move 方法 | 将指定的文件或文件夹移动到其他位置上。
MoveFile 方法 | 将一个或多个文件移动到其他位置上。
MoveFolder 方法 | 将一个或多个文件夹移动到其他位置上。
Name 属性 | 设置或返回指定的文件或文件夹的名称。
OpenAsTextStream 方法 | 打开指定的文件，返回用来读、写或添加到文件尾的 TextStream 对象。
OpenTextFile 方法 | 打开指定的文件，返回用来读、写或添加到文件尾的 TextStream 对象。
ParentFolder 属性 | 返回指定的文件或文件夹的上一层文件夹对象。
Path 属性 | 返回指定的文件、文件夹或驱动器的路径。
Read 方法 | 从 TextStream 文件中读出指定数量的字符并返回作为结果的字符串。
ReadAll 方法 | 读取整个 TextStream 文件，返回作为结果的字符串。
ReadLine 方法 | 从 TextStream 文件中读取一个整行（到换行符为止，但不包括换行符）， 返回作为结果的字符串。
Remove 方法 | 从Dictionary 对象中删除键,条目对。
RemoveAll 方法 | 从Dictionary 对象中删除所有的键，条目对。
RootFolder 属性 | 返回一个Folder 对象，代表指定的驱动器的根文件夹。
SerialNumber 属性 | 返回用来唯一性地标识一个磁盘卷的十进制序列号。
ShareName 属性 | 返回指定的驱动器的网络共享名称。
ShortName 属性 | 返回较短的名称，用于需要早期的8.3命名规范的程序。
ShortPath 属性 | 返回较短的路径，用于需要早期的8.3命名规范的程序。
Size 属性 | 以字节为单位，返回指定的文件或文件夹的大小。
Skip 方法 | 在读取 TextStream 文件时跳过指定数量的字符。
SkipLine 方法 | 在读取 TextStream 文件时跳过下一行。
SpecialFolder 常数 | 定义操作系统中可以使用的特殊文件夹。
SubFolders 属性 | 返回一个 Folders 集合，其中包含指定的文件夹中包含的所有文件夹， 包括具有隐藏和系统属性设置的文件夹。
TextStream 对象 | 用于顺序访问文件。
TotalSize 属性 | 返回驱动器或网络共享设备的空间总量，单位为字节。
Type 属性 | 返回与文件或文件夹的类型有关的信息。
VolumeName 属性 | 设置或返回指定的驱动器的卷名。
Write 方法 | 将指定的字符串写到 TextStream文件中。
WriteBlankLines 方法 | 将指定数量的换行符写入 TextStream 文件中。
WriteLine 方法 | 将指定的字符串和换行符写入 TextStream 文件。
语言成分 | 描述
驱动器类型常数 | 定义宿主计算机上可以使用的各种驱动器类型， 例如Fixed、Removable、CD-ROM等。
文件属性常数 | 定义各种文件属性，如 Hidden、Read-Only等。
FileSystemObject 常数 | 用于 File System automation 对象的一组常数
SpecialFolder 常数 | 定义操作系统中可以使用的特殊文件夹。
语言成分 | 描述
Add 方法 (Dictionary) | 将键和条目对添加到 Dictionary 对象中。
Add 方法 (Folders) | 将一个新的Folder添加到 Folders集合中。
BuildPath 方法 | 将名称添加到已有的路径中。
Close 方法 | 关闭打开的 TextStream 文件。
Copy 方法 | 将指定的文件或文件夹复制到其他位置上。
CopyFile 方法 | 将一个或多个文件复制到其他位置上。
CopyFolder 方法 | 递归地（包含子目录）将一个文件夹复制到其他位置。
CreateFolder 方法 | 创建文件夹。
CreateTextFile 方法 | 创建指定的文件名并返回 TextStream 对象，用于读取文件。
Delete 方法 | 删除指定的文件或文件夹。
DeleteFile 方法 | 删除指定的文件。
DeleteFolder 方法 | 删除指定的文件夹及其内容。
DriveExists 方法 | 如果指定的驱动器存在，返回 True； 否则返回 False。
Exists 方法 | 如果 Dictionary 对象中存在指定的键，返回 True； 否则，返回 False。
FileExists 方法 | 如果存在指定的文件，返回 True； 否则，返回 False。
FolderExists 方法 | 如果存在指定的文件夹，返回 True； 否则，返回 False。
GetAbsolutePathName 方法 | 根据提供的路径规范返回完整的、无二义性的路径。
GetBaseName 方法 | 返回一个字符串，其中包含文件的基本名称 （无文件扩展名），或符合所提供的路径规范的文件夹。
GetDrive 方法 | 返回指定的路径的驱动器所对应的Drive。
GetDriveName 方法 | 返回的字符串中包含了指定路径的驱动器名称。
GetExtensionName 方法 | 返回的字符串中包含路径的最后一个成分的名称。
GetFile 方法 | 返回与指定的路径中的文件所对应的 File 对象。
GetFileName 方法 | 返回指定的路径中与驱动器说明无关的部分的最后一个文件名或文件夹。
GetFolder 方法 | 返回与指定的路径中的文件夹相对应的 Folder 对象。
GetParentFolderName 方法 | 返回的字符串中包含指定的路径中最后一个文件或文件夹的上一层文件夹的名称。
GetSpecialFolder 方法 | 返回指定的特殊文件夹。
GetTempName 方法 | 返回随机生成的临时文件或文件夹名称。
Items 方法 | 返回的数组中包含一个 Dictionary 对象中的全部项。
Keys 方法 | 返回的数组中包含 Dictionary 对象中现存的所有键。
Move 方法 | 将指定的文件或文件夹移动到其他位置。
MoveFile 方法 | 将一个或几个文件移动到其他位置。
MoveFolder 方法 | 将一个或几个文件夹移动到其他位置。
OpenAsTextStream 方法 | 打开指定的文件并返回一个 TextStream 对象，该对象可以用于对文件进行读、写和添加到结尾操作。
OpenTextFile 方法 | 打开指定的文件并返回一个 TextStream 对象，该对象可以用于对文件进行读、写和添加到结尾操作。
Read 方法 | 从一个 TextStream 文件中读取指定个数的字符，并将结果通过一个字符串返回。
ReadAll 方法 | 读取整个 TextStream 文件，并将结果通过字符串返回。
ReadLine 方法 | 从 TextStream 文件中读取一行（到换行符位置，但 不包括换行符），结果通过字符串返回。
Remove 方法 | 从一个 Dictionary 对象中删除键，条目对。
RemoveAll 方法 | 删除Dictionary 对象中全部键，条目对。
Skip 方法 | 在读取 TextStream 文件时跳过指定个数的字符。
SkipLine 方法 | 在读取 TextStream 文件时跳过下一行。
Write 方法 | 将指定的字符串写入一个TextStream文件。
WriteBlankLines 方法 | 将指定个数的换行符写入 TextStream 文件。
WriteLine 方法 | 将指定的字符串和换行符写入 TextStream 文件。
语言成分 | 描述
Dictionary 对象 | 该对象用于存储数据键，条目对。
Drive 对象 | 提供对特定的磁盘驱动器或共享网络设备的属性的访问。
Drives 集合 | 所有可用的驱动器的只读集合。
File 对象 | 提供对文件的所有属性的访问。
Files 集合 | 一个 Folder 对象中的所有 File 对象的集合。
FileSystemObject 对象 | 提供对计算机的文件系统的访问。
Folder 对象 | 提供对文件夹的所有属性的访问。
Folders 集合 | 一个 Folder 对象中的所有 Folder 对象的集合。
TextStream 对象 | 实现对文件的顺序访问。
语言成分 | 描述
AtEndOfLine 属性 | 如果文件指针恰好位于 TextStream 文件中的行尾符之前，返回 True； 否则，返回 False。
AtEndOfStream 属性 | 如果文件指针位于 TextStream 文件的尾部，返回 True； 否则，返回 False。
Attributes 属性 | 设置或返回文件或文件夹的属性。
AvailableSpace 属性 | 返回指定的驱动器或网络共享设备上某个用户的可用磁盘空间大小。
Column 属性 | 返回 TextStream 文件中当前字符位置的列号。
CompareMode 属性 | 为 Dictionary 对象中的字符串键比较设置并返回比较模式。
Count 属性 | 返回一个集合或 Dictionary 对象中的项目数。
DateCreated 属性 | 返回指定的文件或文件夹创建时的日期与时间。
DateLastAccessed 属性 | 返回指定的文件或文件夹最后一次被访问时的日期与时间。
DateLastModified 属性 | 返回指定的文件或文件夹最后一次被修改时的日期与时间。
Drive 属性 | 返回指定的文件或文件夹所在的驱动器的盘符。
DriveLetter 属性 | 返回一个物理上的本地驱动器或网络共享设备的驱动器盘符。
Drives 属性 | 返回一个 Drives 集合，其中包含本机上可用的所有 Drive 对象。
DriveType 属性 | 其返回值显示了指定的驱动器的类型。
Files 属性 | 返回一个 Files 集合，其中包含 指定的文件夹中所有的 File 对象，包括具有 隐藏或系统文件属性设置的文件在内。
FileSystem 属性 | 返回指定的驱动器使用的文件系统的类型。
FreeSpace 属性 | 返回指定的驱动器或网络共享设备上某个用户可以使用的空闲空间的数量。
IsReady 属性 | 如果指定的驱动器准备就绪，返回 True； 否则，返回 False。
IsRootFolder 属性 | 如果指定的文件夹为根文件夹，返回 True； 否则返回 False。
Item 属性 | 为Dictionary 对象中的指定 key 设置或返回一个item。
Key 属性 | 在一个 Dictionary 对象中设置 key。
Line 属性 | 返回 TextStream 文件中的当前行号。
Name 属性 | 设置或返回指定的文件或文件夹的名称。
Number 属性 | 返回或设置一个用来指定错误的数字值。
ParentFolder 属性 | 返回指定的文件或文件夹的上一层文件夹对象。
Path 属性 | 返回指定的文件、文件夹或驱动器的路径。
RootFolder 属性 | 返回表示指定驱动器的根文件夹的 Folder 对象。
SerialNumber 属性 | 返回用来唯一性标识一个磁盘卷的十进制序列号。
ShareName 属性 | 返回指定驱动器的网络共享名称。
ShortName 属性 | 返回需要早期8.3命名规范的程序所需的短名称。
ShortPath 属性 | 返回需要早期8.3命名规范的程序所需的短路径。
Size 属性 | 返回指定的文件或文件夹的大小，以字节为单位。
SubFolders 属性 | 返回一个Folders集合，其中包含指定的文件夹包含的所有文件夹， 包括那些设置了“隐藏”和“系统”文件属性的文件夹。
TotalSize 属性 | 返回驱动器或网络共享设备的全部空间的大小，以字节为单位。
Type 属性 | 返回与文件或文件夹的类型有关的信息。
VolumeName 属性 | 设置或返回指定的驱动器的名称。

© 1998 Microsoft Corporation. 保留所有权利。


特征信息

特性
信息 		Scripting 运行时库参考
版本信息

Microsoft Scripting 运行时特性


关键字字典顺序列表

关键字字典顺序列表 		Scripting 运行时参考
版本信息

Add 方法 (Dictionary)
Add 方法 (Folders)
AtEndOfLine 属性
AtEndOfStream 属性
Attributes 属性
AvailableSpace 属性
BuildPath 方法
Close 方法
Column 属性
CompareMode 属性
Copy 方法
CopyFile 方法
CopyFolder 方法
Count 属性
CreateFolder 方法
CreateTextFile 方法
DateCreated 属性
DateLastAccessed 属性
DateLastModified 属性
Delete 方法
DeleteFile 方法
DeleteFolder 方法
Dictionary 对象
Drive 对象
Drive 属性
Drive Type 常数
DriveExists 方法
DriveLetter 属性
Drives 集合
Drives 属性
DriveType 属性
Exists 方法
FileExists 方法
File Attribute 常数
File Input/Output 常数
File 对象
Files 集合
Files 属性
FileSystemObject 常数
FileSystemObject 对象
FileSystem 属性
Folder 对象
Folders 集合
FolderExists 方法
FreeSpace 属性
GetAbsolutePathName 方法
GetBaseName 方法
GetDrive 方法
GetDriveName 方法
GetExtensionName 方法
GetFile 方法
GetFileName 方法
GetFolder 方法
GetParentFolderName 方法
GetSpecialFolder 方法
GetTempName 方法
IsReady 属性
IsRootFolder 属性
Item 属性
Items 方法
Key 属性
Keys 方法
Line 属性
Move 方法
MoveFile 方法
MoveFolder 方法
Name 属性
OpenAsTextStream 方法
OpenTextFile 方法
ParentFolder 属性
Path 属性
Read 方法
ReadAll 方法
ReadLine 方法
Remove 方法
RemoveAll 方法
RootFolder 属性
SerialNumber 属性
ShareName 属性
ShortName 属性
ShortPath 属性
Size 属性
Skip 方法
SkipLine 方法
SpecialFolder 常数
Subfolders 属性
TextStream 对象
TotalSize 属性
Type 属性
VolumeName 属性
Write 方法
WriteBlankLines 方法
WriteLine 方法


常数

常数 		Scripting 运行时库参考
版本信息

驱动器类型常数
文件属性常数
FileSystemObject 常数
文件输入/输出常数
FileSystemObject 常数
SpecialFolder 常数


方法

方法 		Scripting 运行时库参考
版本信息

Add 方法 (Dictionary)
Add 方法 (Folders)
BuildPath 方法
Close 方法
Copy 方法
CopyFile 方法
CopyFolder 方法
CreateFolder 方法
CreateTextFile 方法
Delete 方法
DeleteFile 方法
DeleteFolder 方法
DriveExists 方法
Exists 方法
FileExists 方法
FolderExists 方法
GetAbsolutePathName 方法
GetBaseName 方法
GetDrive 方法
GetDriveName 方法
GetExtensionName 方法
GetFile 方法
GetFileName 方法
GetFolder 方法
GetParentFolderName 方法
GetSpecialFolder 方法
GetTempName 方法
Items 方法
Keys 方法
Move 方法
MoveFile 方法
MoveFolder 方法
OpenAsTextStream 方法
OpenTextFile 方法
Read 方法
ReadAll 方法
ReadLine 方法
Remove 方法
RemoveAll 方法
Skip 方法
SkipLine 方法
Write 方法
WriteBlankLines 方法
WriteLine 方法


对象

对象 		Scripting 运行时库参考
版本信息

Dictionary 对象
Drive 对象
Drives 集合
File 对象
Files 集合
FileSystemObject 对象
Folder 对象
Folders 集合
TextStream 对象


属性

属性 		Scripting 运行时库参考
版本信息

AtEndOfLine 属性
AtEndOfStream 属性
Attributes 属性
AvailableSpace 属性
Column 属性
CompareMode 属性
Count 属性
DateCreated 属性
DateLastAccessed 属性
DateLastModified 属性
Drive 属性
DriveLetter 属性
Drives 属性
DriveType 属性
Files 属性
FileSystem 属性
FreeSpace 属性
IsReady 属性
IsRootFolder 属性
Item 属性
Key 属性
Line 属性
Name 属性
ParentFolder 属性
Path 属性
RootFolder 属性
SerialNumber 属性
ShareName 属性
ShortName 属性
ShortPath 属性
Size 属性
SubFolders 属性
TotalSize 属性
Type 属性
VolumeName 属性


JScript 漫游

FileSystemObject 对象教程
 Scripting 运行时库参考


Microsoft(R) Scripting 库 - FileSystemObject 对象

Microsoft(R) Scripting 库 - FileSystemObject
FileSystemObject 对象模式
 下一页

在为 Active Server Pages、Windows Scripting Host、或其他可以使用 scripting 的应用程序写脚本时，在 Web 服务器上添加、移动、改变、创建或删除文件夹（目录）和文件通常是很重要的。获得有关信息和操作连接在 Web 服务器上的驱动器也可能是必要的。

Scripting 允许用 FileSystemObject (FSO) 对象模式来处理驱动器、文件夹和文件，在下面的章节中将解释该对象模式：

  • FileSystemObject
    和 Scripting 运行时库参考的介绍

  • FileSystemObject 对象

  • 设计 FileSystemObject

  • 处理驱动器和文件夹

  • 处理文件

  • FileSystemObject 示例代码


Microsoft(R) Scripting 库 - FileSystemObject 和 Scripting 运行时库参考的介绍

Microsoft(R) Scripting 库 - FileSystemObject
FileSystemObject
和
Scripting 运行时库参考的介绍
 上一页
下一页

FileSystemObject (FSO) 对象模式，允许对大量的属性、方法和事件，使用较熟悉的 object.method 语法，来处理文件夹和文件。

使用这个基于对象的工具和：
  • HTML 来创建 Web 页

  • Windows Scripting Host 来为 Microsoft Windows 创建批文件

  • Script Control 来对用其他语言开发的应用程序提供编辑脚本的能力

因为在客户端使用 FSO 而引起重要的安全性问题，提供潜在地不受欢迎的对客户端本地文件系统的访问，假定本文档使用 FSO 对象模式，来创建由服务器端的 Internet Web 页执行的脚本。因为使用了服务器端，Internet Explorer 缺省安全设置不允许客户端使用 FileSystemObject 对象。覆盖那些缺省值可能会引起在本地计算机上不受欢迎的对其文件系统的访问，从而导致文件系统完整性的全部破坏，同时引起数据遗失或更糟的情况。

FSO 对象模式使服务器端的应用程序能创建、改变、移动和删除文件夹，或探测特定的文件夹是否存在，若存在，还可以找出有关文件夹的信息，如名称、被创建或最后一次修改的日期，等等。

FSO 对象模式还使文件处理变得很容易。在处理文件时，主要的目标是以易于访问的格式把数据存储在有效的空间和资源中。这就要求能够创建文件，插入和改变数据，以及输出（读取）数据。因为把数据存储在数据库中，如 Access 或 SQL 服务器，会给应用程序增加很大的开销，所以把数据存储在二进制或文本文件中可能是最有效的解决方案。可能不希望有该开销，或者数据访问要求可能不需要与功能完备的数据库相关联的所有额外功能。

包含在 Scripting 类型库 (Scrrun.dll) 中的 FSO 对象模式，支持通过 TextStream 对象来创建和操作文本文件。虽然还不支持二进制文件的创建或操作，但计划将来要支持二进制文件。


FileSystemObject 对象

Microsoft(R) Scripting 库 - FileSystemObject
FileSystemObject 对象
 上一页
下一页

FileSystemObject(FSO) 对象模式包含下面的对象和集合。

对象/集合 | 描述
FileSystemObject | 主对象。包含用来创建、删除和获得有关信息，以及通常用来操作驱动器、文件夹和文件的方法和属性。和该对象相关联的许多方法，与其他 FSO 对象中的方法完全相似；它们是为了方便才被提供的。
Drive | 对象。包含用来收集信息的方法和属性，这些信息是关于连接在系统上的驱动器的，如驱动器的共享名和它有多少可用空间。请注意，"drive" 并非必须是硬盘，也可以是 CD-ROM 驱动器，RAM 磁盘等等。并非必须把驱动器实物地连接到系统上；它也可以通过网络在逻辑上被连接起来。
Drives | 集合。提供驱动器的列表，这些驱动器实物地或在逻辑上与系统相连接。Drives 集合包括所有驱动器，与类型无关。要可移动的媒体驱动器在该集合中显现，不必把媒体插入到驱动器中。
File | 对象。包含用来创建、删除或移动文件的方法和属性。也用来向系统询问文件名、路径和多种其他属性。
Files | 集合。提供包含在文件夹内的所有文件的列表。
Folder | 对象。包含用来创建、删除或移动文件夹的方法和属性。也用来向系统询问文件夹名、路径和多种其他属性。
Folders | 集合。提供在 Folder 内的所有文件夹的列表。
TextStream | 对象。用来读写文本文件。


设计 FileSystemObject

Microsoft(R) Scripting 库 - FileSystemObject
设计 FileSystemObject
 上一页
下一页

要用 FileSystemObject (FSO) 对象模式来编程，则：

  • 使用 CreateObject 方法来创建 FileSystemObject 对象。
  • 在新创建的对象上使用适当的方法。
  • 访问对象的属性。
FSO 对象模式包含在 Scripting 类型库中，该库位于 Scrrun.dll 文件中。因而，要使用 FSO 对象模式，必须把 Scrrun.dll 放在 Web 服务器的适当系统目录中。

创建 FileSystemObject 对象
首先，使用 CreateObject 对象来创建 FileSystemObject 对象， 在 VBScript 中，使用下面的代码来创建 FileSystemObject 的一个实例：

Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
示例代码示范了如何创建 FileSystemObject 的一个实例。

在 JScript 中，使用下面的代码来做同样的事情：

var fso;
fso = new ActiveXObject("Scripting.FileSystemObject");
在这两个示例中，Scripting 是类型库的名字，而 FileSystemObject 则是想要创建的对象的名字。可以只创建 FileSystemObject 对象的一个实例，而不管试图创建另一个实例的次数。

使用适当的方法
其次，使用 FileSystemObject 对象的适当方法。例如，要创建一个新的对象，则使用 CreateTextFile 或 CreateFolder （FSO 对象模式不支持驱动器的创建或删除）。

要删除对象，则使用 FileSystemObject 对象的 DeleteFile 和 DeleteFolder 方法，或 File 和 Folder 对象的 Delete 方法。也可以使用适当的方法，来复制和移动文件与文件夹。

注意 FileSystemObject 对象模式中的某些功能是多余的。例如，可以用 FileSystemObject 对象的 CopyFile 方法，也可以用 File 对象的 Copy 方法来复制文件。这两种方法功能是相同的；两种方法都能使编程灵活。

访问现有驱动器、文件和文件夹
要访问现有驱动器、文件或文件夹，则使用 FileSystemObject 对象中的适当的 "get" 方法：

  • GetDrive
  • GetFolder
  • GetFile
在 VBScript 中要访问现有文件：

Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.GetFile("c:\test.txt")
在 JScript 中要做同样的事情，则使用下面的代码：

var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.GetFile("c:\\test.txt");
不要对新创建的对象使用 "get" 方法，因为 "create" 函数已经返回那个对象的一个句柄。例如，如果使用 CreateFolder 方法创建了一个新的文件夹，则不要使用 GetFolder 方法来访问它的属性，如 Name、Path、Size等等。只需设一个变量给 CreateFolder 函数，来获得新创建文件夹的句柄名，然后访问它的属性、方法和事件。要在 VBScript 中这样做，则使用下面的代码：

Sub CreateFolder
  Dim fso, fldr
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set fldr = fso.CreateFolder("C:\MyTest")
  Response.Write "Created folder: " & fldr.Name
End Sub
在 JScript 中给 CreateFolder 函数设置一个变量，则使用下面的语法：

function CreateFolder()
{
  var fso, fldr;
  fso = ActiveXObject("Scripting.FileSystemObject");
  fldr = fso.CreateFolder("C:\\MyTest");
  Response.Write("Created folder: " + fldr.Name);
}
访问对象的属性
一旦有了对象的句柄，就可以访问它的属性。例如，要获得特定文件夹的名字，首先创建该对象的一个实例，然后用适当的方法获得它的句柄（在这个例子中是 GetFolder 方法，因为该文件夹已经存在了）。

在 VBScript 中，用该代码来获得 GetFolder 方法的一个句柄：

Set fldr = fso.GetFolder("c:\")

在 JScript 中要做同样的事情，则使用下面的代码：

var fldr = fso.GetFolder("c:\\");
现在，已经有了 Folder 对象的句柄，就可以检查它的 Name 属性了。在 VBScript 中使用下面的代码来检查：

Response.Write "Folder name is: " & fldr.Name
在 JScript 中要检查 Name 属性，则使用下面的语法：

Response.Write("Folder name is: " + fldr.Name);
要找出最后一次修改文件的时间，则使用下面的 VBScript 语法：

Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
' 获得要查询的文件对象。
Set f1 = fso.GetFile("c:\detlog.txt")
' 打印信息。
Response.Write "File last modified: " & f1.DateLastModified
在 JScript 中要找出同样的事情，则使用下面的代码：

var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
// 获得要查询的文件对象。
f1 = fso.GetFile("c:\\detlog.txt");
// 打印信息。
Response.Write("File last modified: " + f1.DateLastModified);


处理驱动器和文件夹

Microsoft(R) Scripting 库 - FileSystemObject
处理驱动器和文件夹
 上一页
下一页

使用 FileSystemObject (FSO) 对象模式，可以有计划地处理驱动器和文件夹，就像在 Windows 资源管理器中交互式地处理它们一样。可以复制和移动文件夹，获取有关驱动器和文件夹的信息，等等。

获取有关驱动器的信息
可以用 Drive 对象来获得有关各种驱动器的信息，这些驱动器是实物地或通过网络连接到系统上的。它的属性可以用来获得下面的信息内容：

  • 驱动器的总容量，以字节为单位（TotalSize 属性）
  • 驱动器的可用空间是多少，以字节为单位（AvailableSpace 或 FreeSpace 属性）
  • 哪个号被赋给了该驱动器（DriveLetter 属性）
  • 驱动器的类型是什么，如可移动的、固定的、网络的、CD-ROM 或 RAM 磁盘（DriveType 属性）
  • 驱动器的序列号（SerialNumber 属性）
  • 驱动器使用的文件系统类型，如 FAT、FAT32、NTFS 等等（FileSystem 属性）
  • 驱动器是否可以使用（IsReady 属性）
  • 共享和/或卷的名字（ShareName 和 VolumeName 属性）
  • 驱动器的路径或根文件夹（Path 和 RootFolder 属性）
请考察示例代码，来领会如何在 FileSystemObject 中使用这些属性。

Drive 对象的用法示例
使用 Drive 对象来收集有关驱动器的信息。在下面的代码中，没有对实际的 Drive 对象的引用；相反，使用 GetDrive 方法来获得现有 Drive 对象的引用（在这个例子中就是 drv）。

下面示例示范了如何在 VBScript 中使用 Drive 对象：

Sub ShowDriveInfo(drvPath)
  Dim fso, drv, s
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set drv = fso.GetDrive(fso.GetDriveName(drvPath))
  s = "Drive " & UCase(drvPath) & " - "
  s = s & drv.VolumeName & "<br>"
  s = s & "Total Space: " & FormatNumber(drv.TotalSize / 1024, 0)
  s = s & " Kb" & "<br>"
  s = s & "Free Space: " & FormatNumber(drv.FreeSpace / 1024, 0)
  s = s & " Kb" & "<br>"
  Response.Write s
End Sub
下面的代码说明在 JScript 中实现同样的功能：
function ShowDriveInfo1(drvPath)
{
  var fso, drv, s ="";
  fso = new ActiveXObject("Scripting.FileSystemObject");
  drv = fso.GetDrive(fso.GetDriveName(drvPath));
  s += "Drive " + drvPath.toUpperCase()+ " - ";
  s += drv.VolumeName + "<br>";
  s += "Total Space: " + drv.TotalSize / 1024;
  s += " Kb" + "<br>";
  s += "Free Space: " + drv.FreeSpace / 1024;
  s += " Kb" + "<br>";
  Response.Write(s);
}
处理文件夹
在下面的表中，描述了普通的文件夹任务和执行它们的方法。

任务 | 方法
创建文件夹。 | FileSystemObject.CreateFolder
删除文件夹。 | Folder.Delete 或 FileSystemObject.DeleteFolder
移动文件夹。 | Folder.Move 或 FileSystemObject.MoveFolder
复制文件夹。 | Folder.Copy 或 FileSystemObject.CopyFolder
检索文件夹的名字。 | Folder.Name
如果文件夹在驱动器上存在，则找出它。 | FileSystemObject.FolderExists
获得现有 Folder 对象的实例。 | FileSystemObject.GetFolder
找出文件夹的父文件夹名。 | FileSystemObject.GetParentFolderName
找出系统文件夹的路径。 | FileSystemObject.GetSpecialFolder

请考察示例代码，来看看在 FileSystemObject 中使用了多少种这些的方法和属性。

下面的示例示范了如何在 VBScript 中使用 Folder 和 FileSystemObject 对象，来操作文件夹和获得有关它们的信息：

Sub ShowFolderInfo()
  Dim fso, fldr, s
  ' 获得 FileSystemObject 的实例。
  Set fso = CreateObject("Scripting.FileSystemObject")
  ' 获得 Drive 对象。
  Set fldr = fso.GetFolder("c:")
  ' 打印父文件夹名字。
  Response.Write "Parent folder name is: " & fldr & "<br>"
  ' 打印驱动器名字。
  Response.Write "Contained on drive " & fldr.Drive & "<br>"
  ' 打印根文件名。
  If fldr.IsRootFolder = True Then
    Response.Write "This is the root folder." & ""<br>"<br>"
  Else
    Response.Write "This folder isn't a root folder." & "<br><br>"
  End If
  ' 用 FileSystemObject 对象创建新的文件夹。
  fso.CreateFolder ("C:\Bogus")
  Response.Write "Created folder C:\Bogus" & "<br>"
  ' 打印文件夹的基本名字。
  Response.Write "Basename = " & fso.GetBaseName("c:\bogus") & "<br>"
  ' 删除新创建的文件夹。
  fso.DeleteFolder ("C:\Bogus")
  Response.Write "Deleted folder C:\Bogus" & "<br>"
End Sub
下面的示例显示如何在 JScript 中使用 Folder 和 FileSystemObject 对象：
function ShowFolderInfo()
{
  var fso, fldr, s = "";
  // 获得 FileSystemObject 的实例。
  fso = new ActiveXObject("Scripting.FileSystemObject");
  // 获得 Drive 对象。
  fldr = fso.GetFolder("c:");
  // 打印父文件夹名。
  Response.Write("Parent folder name is: " + fldr + "<br>");
  // 打印驱动器名字。
  Response.Write("Contained on drive " + fldr.Drive + "<br>");
  // 打印根文件名。
  if (fldr.IsRootFolder)
    Response.Write("This is the root folder.");
  else
    Response.Write("This folder isn't a root folder.");
  Response.Write("<br><br>");
  // 用 FileSystemObject 对象创建新的文件夹。
  fso.CreateFolder ("C:\\Bogus");
  Response.Write("Created folder C:\\Bogus" + "<br>");
  // 打印文件夹的基本名。
  Response.Write("Basename = " + fso.GetBaseName("c:\\bogus") + "<br>");
  // 删除新创建的文件夹。
  fso.DeleteFolder ("C:\\Bogus");
  Response.Write("Deleted folder C:\\Bogus" + "<br>");
}


FileSystemObject 示例代码

Microsoft(R) Scripting 库 - FileSystemObject
FileSystemObject
示例代码
 上一页

在本节描述的示例代码，提供真实的例子来示范在 FileSystemObject 对象模式中可用的许多功能。该代码显示了如何一起使用对象模式的所有功能，以及如何在您自己的代码中有效地使用这些功能。

请注意，由于该代码是极一般的，所以要使该代码能够真正在您的机器上运行，可能需要一些其他代码和小小的变更。这些改变之所以必要，是因为在 Active Server Pages 和 Windows Scripting Host 之间，为输入和输出给用户采用了不同的方法。

要在 Active Server Pages 上运行该代码，则采取以下步骤：

  1. 创建一个标准的 Web 页，后缀名为 .asp。
  2. 把下面的示例代码复制到 <BODY>...</BODY> 标记之间的文件中。
  3. 把所有代码封装到 <%...%> 标记内。
  4. 把 Option Explicit 语句从当前位置移动到 HTML 页的最顶部，甚至在 <HTML> 开始标记前。
  5. 把 <%...%> 标记放置在 Option Explicit 语句周围，以保证它在服务器端运行。
  6. 把下面的代码添加到示例代码末尾：
Sub Print(x)
  Response.Write "<PRE><FONT face="宋体"" SIZE=""1"">"
  Response.Write x
  Response.Write "</FONT></PRE>"
End Sub
Main
前面的代码增加一个将在服务器端运行，但在客户端显示结果的打印过程。要在 Windows Scripting Host 上运行该代码，则把下面的代码添加到示例代码的末尾：
Sub Print(x)
    WScript.Echo x
End Sub
Main
下面就是示例代码：

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' FileSystemObject 示例代码
'
'Copyright 1998  Microsoft Corporation。保留所有权利。
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Option Explicit

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' 对于代码质量：
'
' 1) 下面的代码有许多字符串操作，用"&"运算符来把短字符串连接在一起。由于
'    字符串连接是费时的，所以这是一种低效率的写代码方法。无论如何，它是
'    一种非常好维护的写代码方法，并且在这儿使用了这种方法，因为该程序执行
'    大量的磁盘操作，而磁盘操作比连接字符串所需的内存操作要慢得多。
'    记住这是示范代码，而不是产品代码。
'
' 2) 使用了 "Option Explicit"，因为访问声明过的变量，比访问未声明的变量要
'    稍微快一些。它还能阻止在代码中发生错误，例如，把 DriveTypeCDROM 误拼
'    成了 DriveTypeCDORM 。
'
' 3) 为了使代码更可读，该代码中没有错误处理。虽然采取了防范措施，来保证代码
'    在普通情况下没有错误，但文件系统是不可预知的。在产品代码中，使用
'    On Error Resume Next 和 Err 对象来捕获可能发生的错误。
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' 一些容易取得的全局变量
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Dim TabStop
Dim NewLine

Const TestDrive = "C"
Const TestFilePath = "C:\Test"

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' 由 Drive.DriveType 返回的常数
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Const DriveTypeRemovable = 1
Const DriveTypeFixed = 2
Const DriveTypeNetwork = 3
Const DriveTypeCDROM = 4
Const DriveTypeRAMDisk = 5

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' 由 File.Attributes 返回的常数
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Const FileAttrNormal  = 0
Const FileAttrReadOnly = 1
Const FileAttrHidden = 2
Const FileAttrSystem = 4
Const FileAttrVolume = 8
Const FileAttrDirectory = 16
Const FileAttrArchive = 32
Const FileAttrAlias = 64
Const FileAttrCompressed = 128

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' 用来打开文件的常数
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Const OpenFileForReading = 1
Const OpenFileForWriting = 2
Const OpenFileForAppending = 8

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' ShowDriveType
'
' 目的：
'
' 生成一个字符串，来描述给定 Drive 对象的驱动器类型。
'
' 示范下面的内容
'
' - Drive.DriveType
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function ShowDriveType(Drive)

    Dim S

    Select Case Drive.DriveType
    Case DriveTypeRemovable
        S = "Removable"
    Case DriveTypeFixed
        S = "Fixed"
    Case DriveTypeNetwork
        S = "Network"
    Case DriveTypeCDROM
        S = "CD-ROM"
    Case DriveTypeRAMDisk
        S = "RAM Disk"
    Case Else
        S = "Unknown"
    End Select

    ShowDriveType = S

End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' ShowFileAttr
'
' 目的：
'
' 生成一个字符串，来描述文件或文件夹的属性。
'
' 示范下面的内容
'
' - File.Attributes
' - Folder.Attributes
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function ShowFileAttr(File) ' File 可以是文件或文件夹

    Dim S
      Dim Attr

    Attr = File.Attributes

    If Attr = 0 Then
        ShowFileAttr = "Normal"
        Exit Function
    End If

    If Attr And FileAttrDirectory  Then S = S & "Directory "
    If Attr And FileAttrReadOnly   Then S = S & "Read-Only "
    If Attr And FileAttrHidden     Then S = S & "Hidden "
    If Attr And FileAttrSystem     Then S = S & "System "
    If Attr And FileAttrVolume     Then S = S & "Volume "
    If Attr And FileAttrArchive    Then S = S & "Archive "
    If Attr And FileAttrAlias      Then S = S & "Alias "
    If Attr And FileAttrCompressed Then S = S & "Compressed "

    ShowFileAttr = S

End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' GenerateDriveInformation
'
' 目的：
'
' 生成一个字符串，来描述可用驱动器的当前状态。
'
' 示范下面的内容
'
' - FileSystemObject.Drives
' - Iterating the Drives collection
' - Drives.Count
' - Drive.AvailableSpace
' - Drive.DriveLetter
' - Drive.DriveType
' - Drive.FileSystem
' - Drive.FreeSpace
' - Drive.IsReady
' - Drive.Path
' - Drive.SerialNumber
' - Drive.ShareName
' - Drive.TotalSize
' - Drive.VolumeName
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function GenerateDriveInformation(FSO)

    Dim Drives
    Dim Drive
    Dim S

    Set Drives = FSO.Drives

    S = "Number of drives:" & TabStop & Drives.Count & NewLine & NewLine

    ' 构造报告的第一行。
    S = S & String(2, TabStop) & "Drive"
    S = S & String(3, TabStop) & "File"
    S = S & TabStop & "Total"
    S = S & TabStop & "Free"
    S = S & TabStop & "Available"
    S = S & TabStop & "Serial" & NewLine

    ' 构造报告的第二行。
    S = S & "Letter"
    S = S & TabStop & "Path"
    S = S & TabStop & "Type"
    S = S & TabStop & "Ready?"
    S = S & TabStop & "Name"
    S = S & TabStop & "System"
    S = S & TabStop & "Space"
    S = S & TabStop & "Space"
    S = S & TabStop & "Space"
    S = S & TabStop & "Number" & NewLine

    ' 分隔行。
    S = S & String(105, "-") & NewLine

    For Each Drive In Drives

        S = S & Drive.DriveLetter
        S = S & TabStop & Drive.Path
        S = S & TabStop & ShowDriveType(Drive)
        S = S & TabStop & Drive.IsReady

        If Drive.IsReady Then
            If DriveTypeNetwork = Drive.DriveType Then
                S = S & TabStop & Drive.ShareName
            Else
                S = S & TabStop & Drive.VolumeName
            End If

            S = S & TabStop & Drive.FileSystem
            S = S & TabStop & Drive.TotalSize
            S = S & TabStop & Drive.FreeSpace
            S = S & TabStop & Drive.AvailableSpace
            S = S & TabStop & Hex(Drive.SerialNumber)

        End If

        S = S & NewLine

    Next

    GenerateDriveInformation = S

End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' GenerateFileInformation
'
' 目的：
'
' 生成一个字符串，来描述文件的当前状态。
'
' 示范下面的内容
'
' - File.Path
' - File.Name
' - File.Type
' - File.DateCreated
' - File.DateLastAccessed
' - File.DateLastModified
' - File.Size
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function GenerateFileInformation(File)

    Dim S

    S = NewLine & "Path:" & TabStop & File.Path
    S = S & NewLine & "Name:" & TabStop & File.Name
    S = S & NewLine & "Type:" & TabStop & File.Type
    S = S & NewLine & "Attribs:" & TabStop & ShowFileAttr(File)
    S = S & NewLine & "Created:" & TabStop & File.DateCreated
    S = S & NewLine & "Accessed:" & TabStop & File.DateLastAccessed
    S = S & NewLine & "Modified:" & TabStop & File.DateLastModified
    S = S & NewLine & "Size" & TabStop & File.Size & NewLine

    GenerateFileInformation = S

End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' GenerateFolderInformation
'
' 目的：
'
' 生成一个字符串，来描述文件夹的当前状态。
'
' 示范下面的内容
'
' - Folder.Path
' - Folder.Name
' - Folder.DateCreated
' - Folder.DateLastAccessed
' - Folder.DateLastModified
' - Folder.Size
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function GenerateFolderInformation(Folder)

    Dim S

    S = "Path:" & TabStop & Folder.Path
    S = S & NewLine & "Name:" & TabStop & Folder.Name
    S = S & NewLine & "Attribs:" & TabStop & ShowFileAttr(Folder)
    S = S & NewLine & "Created:" & TabStop & Folder.DateCreated
    S = S & NewLine & "Accessed:" & TabStop & Folder.DateLastAccessed
    S = S & NewLine & "Modified:" & TabStop & Folder.DateLastModified
    S = S & NewLine & "Size:" & TabStop & Folder.Size & NewLine

    GenerateFolderInformation = S

End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' GenerateAllFolderInformation
'
' 目的：
'
' 生成一个字符串，来描述一个文件夹和所有文件及子文件夹的当前状态。
'
' 示范下面的内容
'
' - Folder.Path
' - Folder.SubFolders
' - Folders.Count
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function GenerateAllFolderInformation(Folder)

    Dim S
    Dim SubFolders
    Dim SubFolder
    Dim Files
    Dim File

    S = "Folder:" & TabStop & Folder.Path & NewLine & NewLine

    Set Files = Folder.Files

    If 1 = Files.Count Then
        S = S & "There is 1 file" & NewLine
    Else
        S = S & "There are " & Files.Count & " files" & NewLine
    End If

    If Files.Count <> 0 Then

        For Each File In Files
            S = S & GenerateFileInformation(File)
        Next

    End If

    Set SubFolders = Folder.SubFolders

    If 1 = SubFolders.Count Then
        S = S & NewLine & "There is 1 sub folder" & NewLine & NewLine
    Else
        S = S & NewLine & "There are " & SubFolders.Count & " sub folders" & NewLine & NewLine
    End If

    If SubFolders.Count <> 0 Then

        For Each SubFolder In SubFolders
            S = S & GenerateFolderInformation(SubFolder)
        Next

        S = S & NewLine

        For Each SubFolder In SubFolders
            S = S & GenerateAllFolderInformation(SubFolder)
        Next

    End If

    GenerateAllFolderInformation = S

End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' GenerateTestInformation
'
' 目的：
'
' 生成一个字符串，来描述 C:\Test 文件夹和所有文件及子文件夹的当前状态。
'
' 示范下面的内容
'
' - FileSystemObject.DriveExists
' - FileSystemObject.FolderExists
' - FileSystemObject.GetFolder
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function GenerateTestInformation(FSO)

    Dim TestFolder
    Dim S

    If Not FSO.DriveExists(TestDrive) Then Exit Function
    If Not FSO.FolderExists(TestFilePath) Then Exit Function

    Set TestFolder = FSO.GetFolder(TestFilePath)

    GenerateTestInformation = GenerateAllFolderInformation(TestFolder)

End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' DeleteTestDirectory
'
' 目的：
'
' 清理 test 目录。
'
' 示范下面的内容
'
' - FileSystemObject.GetFolder
' - FileSystemObject.DeleteFile
' - FileSystemObject.DeleteFolder
' - Folder.Delete
' - File.Delete
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub DeleteTestDirectory(FSO)

    Dim TestFolder
    Dim SubFolder
    Dim File

    ' 有两种方法可用来删除文件：

    FSO.DeleteFile(TestFilePath & "\Beatles\OctopusGarden.txt")

    Set File = FSO.GetFile(TestFilePath & "\Beatles\BathroomWindow.txt")
    File.Delete

    ' 有两种方法可用来删除文件夹：

    FSO.DeleteFolder(TestFilePath & "\Beatles")

    FSO.DeleteFile(TestFilePath & "\ReadMe.txt")

    Set TestFolder = FSO.GetFolder(TestFilePath)
    TestFolder.Delete

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' CreateLyrics
'
' 目的：
'
' 在文件夹中创建两个文本文件。
'
'
' 示范下面的内容
'
' - FileSystemObject.CreateTextFile
' - TextStream.WriteLine
' - TextStream.Write
' - TextStream.WriteBlankLines
' - TextStream.Close
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub CreateLyrics(Folder)

    Dim TextStream

    Set TextStream = Folder.CreateTextFile("OctopusGarden.txt")

    TextStream.Write("Octopus' Garden ") ' 请注意，该语句不添加换行到文件中。
    TextStream.WriteLine("(by Ringo Starr)")
    TextStream.WriteBlankLines(1)
    TextStream.WriteLine("I'd like to be under the sea in an octopus' garden in the shade,")
    TextStream.WriteLine("He'd let us in, knows where we've been -- in his octopus' garden in the shade.")
    TextStream.WriteBlankLines(2)

    TextStream.Close

    Set TextStream = Folder.CreateTextFile("BathroomWindow.txt")
    TextStream.WriteLine("She Came In Through The Bathroom Window (by Lennon/McCartney)")
    TextStream.WriteLine("")
    TextStream.WriteLine("She came in through the bathroom window protected by a silver spoon")
    TextStream.WriteLine("But now she sucks her thumb and wanders by the banks of her own lagoon")
    TextStream.WriteBlankLines(2)
    TextStream.Close

End Sub

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' GetLyrics
'
' 目的：
'
' 显示 lyrics 文件的内容。
'
'
' 示范下面的内容
'
' - FileSystemObject.OpenTextFile
' - FileSystemObject.GetFile
' - TextStream.ReadAll
' - TextStream.Close
' - File.OpenAsTextStream
' - TextStream.AtEndOfStream
' - TextStream.ReadLine
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function GetLyrics(FSO)

    Dim TextStream
    Dim S
    Dim File

    ' 有多种方法可用来打开一个文本文件，和多种方法来从文件读取数据。
    ' 这儿用了两种方法来打开文件和读取文件：

    Set TextStream = FSO.OpenTextFile(TestFilePath & "\Beatles\OctopusGarden.txt", OpenFileForReading)

    S = TextStream.ReadAll & NewLine & NewLine
    TextStream.Close

    Set File = FSO.GetFile(TestFilePath & "\Beatles\BathroomWindow.txt")
    Set TextStream = File.OpenAsTextStream(OpenFileForReading)
    Do 	While Not TextStream.AtEndOfStream
        S = S & TextStream.ReadLine & NewLine
    Loop
    TextStream.Close

    GetLyrics = S

End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' BuildTestDirectory
'
' 目的：
'
' 创建一个目录分层结构来示范 FileSystemObject。
'
' 以这样的次序来创建分层结构：
'
' C:\Test
' C:\Test\ReadMe.txt
' C:\Test\Beatles
' C:\Test\Beatles\OctopusGarden.txt
' C:\Test\Beatles\BathroomWindow.txt
'
'
' 示范下面的内容
'
' - FileSystemObject.DriveExists
' - FileSystemObject.FolderExists
' - FileSystemObject.CreateFolder
' - FileSystemObject.CreateTextFile
' - Folders.Add
' - Folder.CreateTextFile
' - TextStream.WriteLine
' - TextStream.Close
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Function BuildTestDirectory(FSO)

    Dim TestFolder
    Dim SubFolders
    Dim SubFolder
    Dim TextStream

    ' 排除(a)驱动器不存在，或(b)要创建的目录已经存在的情况。

    If Not FSO.DriveExists(TestDrive) Then
        BuildTestDirectory = False
        Exit Function
    End If

    If FSO.FolderExists(TestFilePath) Then
        BuildTestDirectory = False
        Exit Function
    End If

    Set TestFolder = FSO.CreateFolder(TestFilePath)

    Set TextStream = FSO.CreateTextFile(TestFilePath & "\ReadMe.txt")
    TextStream.WriteLine("My song lyrics collection")
    TextStream.Close

    Set SubFolders = TestFolder.SubFolders

    Set SubFolder = SubFolders.Add("Beatles")

    CreateLyrics SubFolder

    BuildTestDirectory = True

End Function

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
' 主程序
'
' 首先，它创建一个 test 目录，以及一些子文件夹和文件。
' 然后，它转储有关可用磁盘驱动器和 test 目录的某些信息，
' 最后，清除 test 目录及其所有内容。
'
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Sub Main

    Dim FSO

    ' 设立全局变量。
    TabStop = Chr(9)
    NewLine = Chr(10)

    Set FSO = CreateObject("Scripting.FileSystemObject")

    If Not BuildTestDirectory(FSO) Then
        Print "Test directory already exists or cannot be created.  Cannot continue."
        Exit Sub
    End If

    Print GenerateDriveInformation(FSO) & NewLine & NewLine

    Print GenerateTestInformation(FSO) & NewLine & NewLine

    Print GetLyrics(FSO) & NewLine & NewLine

    DeleteTestDirectory(FSO)

End Sub


FileSystemObject 词汇

Microsoft(R) Scripting 库 - FileSystemObject
FileSystemObject 词汇 		Scripting 运行时参考

数组
一组具有相同数据类型，有序索引元素。数组的每个元素有唯一的标识索引号。改变数组的一个元素并不影响其他元素。

集合
包含一组相关对象的对象。只要集合中发生了变化，则对象在集合中的位置就可能改变；因而，任何特定的对象在集合中的位置都可能发生了改变。

运行时间错误
在代码运行时发生的错误。当语句试图执行一个非法操作时，就会产生一个运行时间错误。

字符串表达式
值等于一个连续字符序列的任何表达式。字符串表达式的元素，可以包括返回值是字符串、字符串文字、字符串常数或字符串变量的函数。

类型库
在另一个文件中的文件或组件，它含有对被显露对象、属性和方法的标准描述。


VBScript 词汇表

VBScript 词汇表 		语言参考

ActiveX 控件
放置在窗体中的对象，使用户能够进行与应用程序的交互操作，或增强这种能力。ActiveX 控件包含事件并且可以合并到其他控件中。ActiveX 控件的文件扩展名为 .ocx。

ActiveX 对象
通过 Automation 接口，显露于其他应用程序或编程工具的对象。

参数
传递给过程的常数、变量或表达式。

数组
一组可顺序索引并具有相同内部数据类型的元素。数组中每个元素具有唯一索引号。更改数组中一个元素不影响其他元素。

ASCII 字符集
美国标准信息交换码 (ASCII) 7 位字符集，广泛用于表示美国标准键盘上的字母和符号。ASCII 字符集与 ANSI 字符集的前 128 字符 (0-127) 完全一样。

Automation 对象
通过 Automation 接口，显露于其他应用程序或编程工具的对象。

逐位比较
按位比较两个数值表达式中相同位置的位。

Boolean 表达式
值为 True 或 False 的表达式。

引用方式
向过程传递参数的方式之一，即将参数的地址而不是值传递给过程。“引用方式”允许过程访问和更改实际变量。

值方式
向过程传递参数的方式之一，即将参数的值而不是地址传递给过程。“值方式”允许过程访问变量的一个副本，但是不能更改变量的实际值。

字符代码
代表字符集（如 ASCII 字符集）中指定字符的数字。

类
对象的正式定义。类是运行时创建对象实例的模板。类定义了对象属性及用于控制对象行为的方法。

类模块
包含类定义（其属性和方法的定义）的模块。

集合
包含一组相关对象的对象。只要集合发生变化，对象在集合中的位置就可能发生变化。因此，集合内任何特定对象的位置都不是固定的。

注释
为解释代码的工作原理，程序员在代码中添加的文本。在 Visual Basic Scripting Edition 中，程序的注释行通常以单引号 (') 开始，或使用关键字 Rem 并在其后面跟随空格。

比较运算符
指明两个或多个数值或表达式之间关系的字符或符号。这些运算符包括小于号 (<)、小于或等于号 (<=)、大于号 (>)、大于或等于号 (>=)、不等号 (<>) 和等号 (=)。

Is 也是比较运算符，但它仅用于判断一个对象引用是否与另一个相同。

常数
有一定名称，在程序执行过程中保持不变值的项目。可在程序代码的任何位置使用常数代替实际值。常数可以是字符串、数字、其他常数或任何除了 Is 和指数运算符之外的算术或逻辑运算符组成的混合算式。例如：

Const A = "MyString"

数据值域
每一个 Variant 子类型的取值范围如下：

子类型 | 值域
Byte | 0 到 255。
Boolean | True 或 False。
Integer | -32,768 到 32,767。
Long | -2,147,483,648 到 2,147,483,647。
Single | 负数从 -3.402823E38 到 -1.401298E-45；正数从 1.401298E-45 到 3.402823E38。
Double | 负数从 -1.79769313486232E308 到 -4.94065645841247E-324；正数从 4.94065645841247E-324 到 1.79769313486232E308。
Currency | -922,337,203,685,477.5808 到 922,337,203,685,477.5807。
Date | 公元 100 年 1 月 1 日到公元 9999 年 12 月 31 日（包括公元 100 年 1 月 1 日和公元 9999 年 12 月 31 日）。
Object | 任何对象的引用。
String | 可变长度字符串，字符串长度从 0 到大约 20 亿个字符。

日期表达式
任何可以被解释为日期的表达式。包括任何日期文字、看起来象日期的数字及字符串和由函数返回的日期的组合。日期表达式为数字或字符串的任意组合，表示从公元 100 年 1 月 1 日到公元 9999 年 12 月 31 日的日期。

日期以实数形式保存。小数点左边的数值代表日期；小数点右边的数值代表时间。负数表示公元 1899 年 12 月 30 日以前的日期。

日期文字
由数字符号 (#) 包围的任何有效格式的字符序列。有效格式包括区域设置指定的日期格式或通用日期格式。例如，应用程序的区域设置为英语（美国）时，#12/31/99# 表示公元 1999 年 12 月 31 日。

在 VBScript 中，无论用户的实际设置是什么，唯一能识别的格式是英语（美国）。也就是说，日期文字的格式为 mm/dd/yyyy。

日期分隔符
在格式化日期值时，用于分隔年、月和日的字符。

Empty
一个值，表示没有为变量指定初值。Empty 变量在数值上下文中为 0，在字符串上下文中为零长度字符串。

错误编号
从 0 到 65,535 的整数（包括 0 和 65,535）。对应于 Err 对象的 Number 属性。当与 Err 对象的 Name 属性联合使用时，错误编号代表特定的错误信息。

表达式
关键字、运算符、变量和常数（字符串常数、数字常数或对象常数）的组合。表达式可用于执行运算、处理字符或测试数据。

固有常数
由应用程序提供的常数。由于不能禁用固有常数，因此不能以相同的名称创建用户自定义常数。

关键字
作为 VBScript 语言组成部分的单词或符号。例如，语句、函数名或运算符。

区域
对应于指定语言和国家/地区的信息集。区域影响预定义的编程语言术语和与区域有关的设置。以下两种上下文中区域信息起到重要作用：
  • 代码区域影响术语（如关键字和与区域有关的设置）的语言，例如小数点、列表分隔符、日期格式和字母排列顺序。
  • 系统区域影响与区域识别功能有关的行为，例如，显示数值或将字符串转换为日期。使用操作系统提供的“控制面板”工具设置区域系统。

Nothing
一个值，表示一个对象变量不再与任何实际对象相关联。

Null
一个值，表示一个变量不包含任何有效数据。Null 由以下操作之一产生：
  • 将 Null 显式赋给某变量。
  • 对包含 Null 的表达式进行的任何操作。

数值表达式
计算结果为数值的任意表达式。表达式的元素可以是关键字、变量、常数和使运算结果为数值的运算符的任意组合。

对象类型
应用程序显露的对象的类型。例如 Application、File、Range 和 Sheet。有关可用对象的完整列表，请参阅应用程序文档（Microsoft Excel、Microsoft Project、Microsoft Word 等）。

pi
数学常数，约等于 3.1415926535897932。

Private
变量，仅在声明此变量的脚本中可见。

过程
有一定名称，作为一个单元执行的语句序列。例如，Function 和 Sub 是过程的两种类型。

过程级
描述位于 Function 或 Sub 过程内的语句。通常首先是声明语句，后面是赋值语句和其他可执行代码。例如：

Sub MySub() ' 声明一个 sub 过程块。
    Dim A ' 过程块的起始部分。
    A = "My variable" ' 过程级代码。
    Debug.Print A ' 过程级代码。
End Sub ' 过程块的结束语句。
注意：Script 级代码位于任何过程块之外。

属性
有一定名称的对象的特性。属性定义了对象特征（如，大小、颜色及在屏幕上的位置）或对象状态（例如启用或禁用）。

Public
使用 Public 语句声明的变量，对所有应用程序中所有模块的所有过程都是可见的。

运行时
代码运行的时期。不能编辑处于运行时的代码。

运行时错误
代码运行时发生的错误。语句进行无效操作时会发生运行时错误。

作用域
定义变量、过程或对象的可见性。例如，声明为 Public 的变量对于所有模块中的所有过程都是可见的。在过程中声明的变量仅在该过程内可见，并在调用完毕后失去变量值。

SCODE
状态代码，为长整型数，用于向接口成员或 API 函数的调用程序传递详细信息。 OLE 接口和 API 的状态代码在 FACILITY_ITF 中定义。

Script 级
位于过程之外的任何代码都被作为脚本级代码引用。

种子
初始值，用于产生伪随机数。例如 Randomize 语句创建一个种子数，然后 Rnd 函数用其创建唯一的伪随机数序列。

字符串比较
两个字符序列的比较。除非在作比较的函数中指定比较的方式，否则所有的字符串比较都是按二进制进行的。在英语中，二进制的比较是区分大小写的；而文本比较则不区分大小写。

字符串表达式
计算结果为连续字符序列的任意表达式。字符串表达式的元素可包含返回下列内容的函数：字符串、字符串文字、字符串常数或字符串变量。

类型库
文件或文件（包含显露的对象、属性和方法的标准描述）中的组件。

变量
有一定名称的存储位置，存储程序执行过程中数值可更改的数据。每个变量都有一个在其作用域范围内唯一标识的名称。

变量的命名遵循以下规则：

  • 必须以字母开始。
  • 不能包含嵌入的句点或类型声明字符。
  • 在作用域内必须是唯一的。
  • 最多只能有 255 个字符。


处理文件

Microsoft(R) Scripting 库 - FileSystemObject
处理文件
 上一页
下一页

有两种主要的文件处理类型：

  • 创建、添加或删除数据，以及读取文件
  • 移动、复制和删除文件
创建文件
创建空文本文件（有时被叫做“文本流”）有三种方法。

第一种方法是用 CreateTextFile 方法。 下面的示例示范了在 VBScript 中如何用这种方法来创建文本文件：

Dim fso, f1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
要在 JScript 中用这种方法，则使用下面的代码：

var fso, f1;
fso = new ActiveXObject("Scripting.FileSystemObject");
f1 = fso.CreateTextFile("c:\\testfile.txt", true);
请考察示例代码，来领会如何在 FileSystemObject 中使用 CreateTextFile 方法。

创建文本文件的第二种方法是，使用 FileSystemObject 对象的 OpenTextFile 方法，并设置 ForWriting 标志。在 VBScript 中，代码就像下面的示例一样：

Dim fso, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting. FileSystemObject")
Set ts = fso.OpenTextFile("c:\test.txt", ForWriting, True)
要在 JScript 中使用这种方法来创建文本文件，则使用下面的代码：

var fso, ts;
var ForWriting= 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
ts = fso.OpenTextFile("c:\\test.txt", ForWriting, true);
创建文本文件的第三种方法是，使用 OpenAsTextStream 方法，并设置 ForWriting 标志。要使用这种方法，在 VBScript 中使用下面的代码：

Dim fso, f1, ts
Const ForWriting = 2
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile ("c:\test1.txt")
Set f1 = fso.GetFile("c:\test1.txt")
Set ts = f1.OpenAsTextStream(ForWriting, True)
在 JScript 中，则使用下面示例中的代码：

var fso, f1, ts;
var ForWriting = 2;
fso = new ActiveXObject("Scripting.FileSystemObject");
fso.CreateTextFile ("c:\\test1.txt");
f1 = fso.GetFile("c:\\test1.txt");
ts = f1.OpenAsTextStream(ForWriting, true);
添加数据到文件中
一旦创建了文本文件，使用下面的三个步骤向文件添加数据：

  1. 打开文本文件。
  2. 写入数据。
  3. 关闭文件。
要打开现有的文件，则使用 FileSystemObject 对象的 OpenTextFile 方法或 File 对象的 OpenAsTextStream 方法。

要写数据到打开的文本文件，则根据下表所述任务使用 TextStream 对象的 Write、WriteLine 或 WriteBlankLines 方法。

任务 | 方法
向打开的文本文件写数据，不用后续一个新行字符。 | Write
向打开的文本文件写数据，后续一个新行字符。 | WriteLine
向打开的文本文件写一个或多个空白行。 | WriteBlankLines

请考察示例代码，来领会如何在 FileSystemObject 对象中使用 Write、WriteLine 和 WriteBlankLines 方法。

要关闭一个打开的文件，则使用 TextStream 对象的 Close 方法。

请考察示例代码，来领会如何在 FileSystemObject 中使用 Close 方法。

注意 新行字符包含一个或几个字符（取决于操作系统），以把光标移动到下一行的开始位置（回车/换行）。注意某些字符串末尾可能已经有这个非打印字符了。

下面的 VBScript 例子示范了如何打开文件，和同时使用三种写方法来向文件添加数据，然后关闭文件：

Sub CreateFile()
  Dim fso, tf
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set tf = fso.CreateTextFile("c:\testfile.txt", True)
  ' 写一行，并且带有新行字符。
  tf.WriteLine("Testing 1, 2, 3.")
  ' 向文件写三个新行字符。
  tf.WriteBlankLines(3)
  ' 写一行。
  tf.Write ("This is a test.")
  tf.Close
End Sub
这个示例示范了在 JScript 中如何使用这三个方法：

function CreateFile()
{
  var fso, tf;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  tf = fso.CreateTextFile("c:\\testfile.txt", true);
  // 写一行，并且带有新行字符。
  tf.WriteLine("Testing 1, 2, 3.") ;
  // 向文件写三个新行字符。
  tf.WriteBlankLines(3) ;
  // 写一行。
  tf.Write ("This is a test.");
  tf.Close();
}
读取文件
要从文本文件读取数据，则使用 TextStream 对象的 Read、ReadLine 或 ReadAll 方法。下表描述了不同的任务应使用哪种方法。

任务 | 方法
从文件读取指定数量的字符。 | Read
读取一整行（一直到但不包括新行字符）。 | ReadLine
读取文本文件的整个内容。 | ReadAll

请考察示例代码，来领会如何在 FileSystemObject 中使用 ReadAll 和 ReadLine 方法。

如果使用 Read 或 ReadLine 方法，并且想跳过数据的特殊部分，则使用 Skip 或 SkipLine 方法。read 方法的结果文本存在一个字符串中，该字符串可以显示在一个控件中，也可以用字符串函数（如 Left、Right 和 Mid）来分析，连接等等。

下面的 VBScript 示例示范了如何打开文件，和如何写数据到文件中并从文件读取数据：

Sub ReadFiles
  Dim fso, f1, ts, s
  Const ForReading = 1
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
  ' 写一行。
  Response.Write "Writing file <br>"
  f1.WriteLine "Hello World"
  f1.WriteBlankLines(1)
  f1.Close
  ' 读取文件的内容。
  Response.Write "Reading file <br>"
  Set ts = fso.OpenTextFile("c:\testfile.txt", ForReading)
  s = ts.ReadLine
  Response.Write "File contents = '" & s & "'"
  ts.Close
End Sub
下面的代码示范了在 JScript 中做同样的事：

function ReadFiles()
{
  var fso, f1, ts, s;
  var ForReading = 1;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f1 = fso.CreateTextFile("c:\\testfile.txt", true);
  // 写一行。
  Response.Write("Writing file <br>");
  f1.WriteLine("Hello World");
  f1.WriteBlankLines(1);
  f1.Close();
  // 读取文件的内容。
  Response.Write("Reading file <br>");
  ts = fso.OpenTextFile("c:\\testfile.txt", ForReading);
  s = ts.ReadLine();
  Response.Write("File contents = '" + s + "'");
  ts.Close();
}
移动、复制和删除文件
FSO 对象模式各有两种方法移动、复制和删除文件，如下表所述。

任务 | 方法
移动文件 | File.Move 或 FileSystemObject.MoveFile
复制文件 | File.Copy 或 FileSystemObject.CopyFile
删除文件 | File.Delete 或 FileSystemObject.DeleteFile

请考察示例代码，来领会在 FileSystemObject 中删除文件的两种方法。

下面的 VBScript 示例，在驱动器 C 的根目录中创建一个文本文件，向其中写一些信息，然后把它移动到 \tmp 目录中，并在 \temp 中做一个备份，最后把它们从两个目录中删掉。

要运行下面的示例，需要先在驱动器 C 的根目录中创建 \tmp 和 \temp 目录：

Sub ManipFiles
  Dim fso, f1, f2, s
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f1 = fso.CreateTextFile("c:\testfile.txt", True)
  Response.Write "Writing file <br>"
  ' 写一行。
  f1.Write ("This is a test.")
  ' 关闭文件。
  f1.Close
  Response.Write "Moving file to c:\tmp <br>"
  ' 获取 C 的根目录(C:\)中的文件的句柄。
  Set f2 = fso.GetFile("c:\testfile.txt")
  ' 把文件移动到 \tmp 目录。
  f2.Move ("c:\tmp\testfile.txt")
  Response.Write "Copying file to c:\temp <br>"
  ' 把文件复制到 \temp 目录。
  f2.Copy ("c:\temp\testfile.txt")
  Response.Write "Deleting files <br>"
  ' 获得文件当前位置的句柄。
  Set f2 = fso.GetFile("c:\tmp\testfile.txt")
  Set f3 = fso.GetFile("c:\temp\testfile.txt")
  ' 删除文件。
  f2.Delete
  f3.Delete
  Response.Write "All done!"
End Sub
下面的代码示范了在 JScript 中做同样的事：

function ManipFiles()
{
  var fso, f1, f2, s;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  f1 = fso.CreateTextFile("c:\\testfile.txt", true);
  Response.Write("Writing file <br>");
  // 写一行。
  f1.Write("This is a test.");
  // 关闭文件。
  f1.Close();
  Response.Write("Moving file to c:\\tmp <br>");
  // 获取 C 的根目录(C:\)中的文件的句柄。
  f2 = fso.GetFile("c:\\testfile.txt");
  // 把文件移动到 \tmp 目录。
  f2.Move ("c:\\tmp\\testfile.txt");
  Response.Write("Copying file to c:\\temp <br>");
  // 把文件复制到 \temp 目录。
  f2.Copy ("c:\\temp\\testfile.txt");
  Response.Write("Deleting files <br>");
  // 获得文件当前位置的句柄。
  f2 = fso.GetFile("c:\\tmp\\testfile.txt");
  f3 = fso.GetFile("c:\\temp\\testfile.txt");
  // 删除文件。
  f2.Delete();
  f3.Delete();
  Response.Write("All done!");
}


简单验证

请输入一个 1 到 10 之间的数字：


vbscopy

版权

对本文档中之内容变更，本公司无另行通知之义务。除了特别注明者，此处提及的公司、产品、人员、字符以及数据的名称均纯属虚构，绝对无意代表任何真正的个人、公司、产品或事件。用户有责任遵守有关的所有版权法律。未经微软公司的正式书面许可，无论出于何种目的，本文档的任何一部分均不得以任何形式或方式，包括电子方式和机械方式，进行复制或者转录。

本文档中的某些主题涉及到微软公司的专利、专利应用、商标、版权，或其他知识产权。除非微软公司提供明确的书面许可协议，否则，提供本文档并不表示授权用户使用这些专利、商标、版权或其他知识产权。

© 1991-1998 微软公司。版权所有，侵权必究。

Microsoft, MS, MS-DOS, ActiveX, JScript, Microsoft Press, Visual Basic, Windows, Windows NT, Win32 和 Win32s 是微软公司在美国或其他国家的注册商标或商标。

此处提及的其他产品和公司名称可能是其拥有者的商标。


一个简单首页


VBScript 运行时库参考

Scripting 运行时库参考 		语言参考
版本信息

特性
信息
关键字字
典顺序表
常数
方法
对象
属性
© 1998 Microsoft Corporation.保留所有权利。


对象样例

此页面需要安装 Label 控件。


VBScript 语言参考

VBScript 语言参考 		VBScript 漫游
版本信息

特性
信息
关键字字
典序列表
常数
事件
函数
方法
对象
运算符
属性
语句
© 1998 Microsoft Corporation。保留所有权利。


版本信息

版本信息 		语言参考

下表列出宿主应用程序支持的 Microsoft Visual Basic Scripting Edition 版本。

宿主应用程序 | VBScript Version
1.0 | 2.0 | 3.0 | 4.0 | 5.0
Microsoft Internet Explorer 3.0 | x
Microsoft Internet Information Server 3.0 | x
Microsoft Internet Explorer 4.0 | x
Microsoft Internet Information Server 4.0 | x
Microsoft Windows Scripting Host 1.0 | x
Microsoft Visual Studio 6.0 | x
Microsoft Visual Studio 6.0 | x
Microsoft Internet Explorer 5.0 | x
Microsoft Internet Information Server 5.0


Drives 集合

Drives 集合 		Scripting 运行时参考
版本 3

请参阅 属性 方法

描述
只读所有可用驱动器的集合。
说明
无论是否插入媒体，可移动媒体驱动器都显示在 Drives 集合中。

以下代码举例说明如何获得 Drives 集合并使用 For Each...Next 语句枚举集合成员：

ShowDriveList 函数
    Dim fso, d, dc, s, n
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set dc = fso.Drives
    For Each d in dc
     n = ""
   s = s & d.DriveLetter & " - "
        If d.DriveType = Remote Then
            n = d.ShareName
        ElseIf d.IsReady Then
            n = d.VolumeName
        End If
        s = s & n &"<BR>"
    Next
   ShowDriveList = s
End Function


Drives 集合

Drives 集合
请参阅 		Scripting 运行时参考

Drive 对象
Drives 属性
File 对象
Files 集合
Folder 对象
Folders 集合


Drives 集合

Drives 集合
方法 		Scripting 运行时参考

Drives 集合无任何方法。


Drives 集合

Drives 集合
属性 		Scripting 运行时参考

Count 属性
Item 属性


Files 集合

Files 集合 		Scripting 运行时参考
版本 3

请参阅 属性 方法

描述
文件夹中所有 File 对象的集合.
说明
以下代码举例说明如何获得 Folders 集合并使用 For Each...Next 语句枚举集合成员：

Function ShowFolderList(folderspec)
    Dim fso, f, f1, fc, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFolder(folderspec)
    Set fc = f.Files
    For Each f1 in fc
        s = s & f1.name
        s = s & "<BR>"
    Next
    ShowFolderList = s
End Function


Files 集合

Files 集合
请参阅 		Scripting 运行时参考

Drive 对象
Drives 集合
File 对象
Folder 对象
Folders 集合


Files 集合

Files 集合
方法 		Scripting 运行时参考

Files 集合无任何方法。


Files 集合

Files 集合
属性 		Scripting 运行时参考

Count 属性
Item 属性


Folders 集合

Folders 集合 		Scripting 运行时参考
版本 3

请参阅 属性 方法

描述
包含在一个 Folder 对象中的所有 Folder 对象的集合。
说明
以下代码举例说明如何获得 Folders 集合并使用 For Each...Next 语句枚举集合成员：
 Function ShowFolderList(folderspec)
    Dim fso, f, f1, fc, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFolder(folderspec)
    Set fc = f.SubFolders
    For Each f1 in fc
        s = s & f1.name
        s = s & "<BR>"
    Next
    ShowFolderList = s
End Function


Folders 集合

Folders 集合
请参阅 		Scripting 运行时参考

Drive 对象
Drives 集合
File 对象
Files 集合
Folder 对象
SubFolders 属性


Folders 集合

Folders 集合
方法 		Scripting 运行时参考

Add 方法


Folders 集合

Folders 集合
属性 		Scripting 运行时参考

Count 属性
Item 属性


Matches 集合

Matches 集合 		语言参考
版本 5

请参阅 属性

描述
正则表达式 Match 对象的集合。
说明
Matches 集合中包含若干独立的 Match 对象，只能使用 RegExp 对象的 Execute 方法来创建之。与独立的 Match 对象属性相同，Matches `集合的一个属性是只读的。

在执行正则表达式时，可能产生零个或多个 Match 对象。每个 Match 对象都提供了与正则表达式匹配的字符串的访问入口、字符串的长度，以及标识匹配位置的索引。

下面的代码将说明如何使用正则表达式查找获得 Matches 集合，以及如何循环遍历集合：

Function RegExpTest(patrn, strng)
  Dim regEx, Match, Matches		' 创建变量。
  Set regEx = New RegExp			' 创建正则表达式。
  regEx.Pattern = patrn			' 设置模式。
  regEx.IgnoreCase = True			' 设置是否区分大小写。
  regEx.Global = True			' 设置全程匹配。
  Set Matches = regEx.Execute(strng)	' 执行搜索。
  For Each Match in Matches		' 循环遍历Matches集合。
    RetStr = RetStr & "Match found at position "
    RetStr = RetStr & Match.FirstIndex & ". Match Value is '"
    RetStr = RetStr & Match.Value & "'." & vbCRLF
  Next
  RegExpTest = RetStr
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))


Matches 集合

Matches 集合
请参阅 		语言参考

For Each...Next 语句
Match 对象
RegExp 对象


Matches 集合

Matches 集合
属性 		语言参考
Count 属性
Item 属性


颜色常数

颜色常数 		语言参考
版本 2

请参阅

因为这些常数是在 VBScript中设置, 您在应用之前不必定义它们. 您可在代码中任意处应用它们以表明说明值。

常数 | 值 | 描述
vbBlack | &h00 | 黑色
vbRed | &hFF | 红色
vbGreen | &hFF00 | 绿色
vbYellow | &hFFFF | 黄色
vbBlue | &hFF0000 | 蓝色
vbMagenta | &hFF00FF | 紫色
vbCyan | &hFFFF00 | 青色
vbWhite | &hFFFFFF | 白色


颜色常数

颜色常数
请参阅 		语言参考

比较常数
日期和时间常数
日期格式常数
其他常数
MsgBox 常数
字符串常数
Tristate 常数
VarType 常数


比较常数

比较常数 		语言参考
版本 2

请参阅

这些常数在 VBScript 中建立, 因此您在使用时不必定义它们. 您可在代码中任意处使用它们以表示说明值.

常数 | 值 | 描述
vbBinaryCompare | 0 | 执行二进制比较。
vbTextCompare | 1 | 执行文本比较。


比较常数

比较常数
请参阅 		语言参考

颜色常数
日期和时间常数
日期格式常数
其他常数
MsgBox 常数
字符串常数
Tristate 常数
VarType 常数


日期格式常数

日期格式常数 		语言参考
版本 2

请参阅

因为这些常数在 VBScript 中被建立, 您在应用之前不必定义它们. 您可在代码中任意处使用它们以表示说明值.

常数 | 值 | 描述
vbGeneralDate | 0 | 显示日期和/或时间。对于实数，显示日期和时间。如果没有小数部分，仅显示日期。如果没有整数部分，则仅显示时间。由系统设置决定日期和时间的显示。
vbLongDate | 1 | 按计算机中区域设置指定的长日期格式显示日期。
vbShortDate | 2 | 按计算机中区域设置指定的短日期格式显示日期。
vbLongTime | 3 | 按计算机中区域设置指定的长时间格式显示时间。
vbShortTime | 4 | 按计算机中区域设置指定的短时间格式显示时间。


日期格式常数

日期格式常数
请参阅 		语言参考

颜色常数
比较常数
日期和时间常数
其他常数
MsgBox 常数
字符串常数
Tristate 常数
VarType 常数


日期和时间常数

日期和时间常数 		语言参考
版本 2

请参阅

因为这些常数在 VBScript 被建立, 您在使用它们之前不必定义. 您可在代码中任意处使用它们以表示说明值.

常数 | 值 | 描述
vbSunday | 1 | 星期日
vbMonday | 2 | 星期一
vbTuesday | 3 | 星期二
vbWednesday | 4 | 星期三
vbThursday | 5 | 星期四
vbFriday | 6 | 星期五
vbSaturday | 7 | 星期六
vbUseSystem | 0 | 使用计算机区域设置中的日期格式。
vbUseSystemDayOfWeek | 0 | 由系统设置定义每周的第一天是星期几。
vbFirstJan1 | 1 | 使用包含 1 月 1 日的星期（默认）。
vbFirstFourDays | 2 | 使用第一个至少包含新的年中四天的星期。
vbFirstFullWeek | 3 | 使用某年的第一个整周。


日期和时间常数

日期和时间常数
请参阅 		语言参考

颜色常数
比较常数
日期格式常数
其他常数
MsgBox 常数
字符串常数
Tristate 常数
VarType 常数


DriveType 常数

DriveType 常数 		Scripting 运行时参考
版本 3

请参阅

仅当类型库包含以下常数定义，且在您的工程文件中已经显式引用该类型库后，才允许使用这些常数。对于 VBScript，必须在代码中显式声明这些常数。

常数 | 值 | 描述
Unknown | 0 | 无法确定驱动器类型。
Removable | 1 | 可移动媒体驱动器，包括软盘驱动器和其他多种存储设备。
Fixed | 2 | 固定（不可移动）媒体驱动器，包括所有硬盘驱动器（包括可移动的硬盘驱动器）。
Remote | 3 | 网络驱动器，包括网络上任何位置的共享驱动器。
CDROM | 4 | CD-ROM 驱动器，不区分只读和可读写的 CD-ROM 驱动器。
RAMDisk | 5 | RAM 磁盘，在本地计算机中占用一块“随机存取内存”(RAM) 虚拟为磁盘驱动器。


DriveType 常数

DriveType 常数
请参阅 		Scripting 运行时参考

比较常数
File Attribute 常数
文件输入/输出常数
SpecialFolder 常数
Tristate 常数


File Attributes 常数

File Attributes 常数 		Scripting 运行时参考
版本 3

请参阅

仅当类型库包含以下常数定义，且在您的工程文件中已经显式引用该类型库后，才允许使用这些常数。对于 VBScript，必须在代码中显式声明这些常数。

常数 | 值 | 描述
Normal | 0 | 普通文件。未设置属性。
ReadOnly | 1 | 只读文件。
Hidden | 2 | 隐藏文件。
System | 4 | 系统文件。
Volume | 8 | 磁盘驱动器卷标。
Directory | 16 | 文件夹或目录。
Archive | 32 | 上次备份后已更改的文件。
Alias | 64 | 链接或快捷方式。
Compressed | 128 | 压缩文件。


FileAttribute 常数

FileAttribute 常数
请参阅 		Scripting 运行时参考

比较常数
DriveType 常数
文件输入/输出常数
SpecialFolder 常数
Tristate 常数


文件输入/输出常数

文件输入/输出常数 		Scripting 运行时参考
版本 2

请参阅

仅当类型库包含以下常数定义，且在您的工程文件中已经显式引用该类型库后，才允许使用这些常数。对于 VBScript，必须在代码中显式声明这些常数。

常数 | 值 | 描述
ForReading | 1 | 以只读方式打开文件。不能向该文件写入内容。
ForWriting | 2 | 以可读写方式打开文件。如果已存在同名的文件，则覆盖旧的文件。
ForAppending | 8 | 打开文件并在文件末尾写入内容。


文件输入/输出常数

文件输入/输出常数
请参阅 		Scripting 运行时参考

比较常数
DriveType 常数
File Attribute常数
SpecialFolder 常数
Tristate 常数


FileSystemObject 常数

FileSystemObject 常数 		Scripting 运行时参考
版本 2

请参阅

FileSystemObject 具有若干可以在程序代码中使用的有价值的常数。常数的好处在于：我们可以方便地使用某些值而无需记住其具体数值。如果常数的值可能发生变化，常数还使程序具有更好的可维护性。

在某些 Scripting 主机上，这些常数已经定义好了。在这种情况下，在代码中需要数值的地方直接使用常数就可以了。不过，如果 SCRRUN.DLL 没有被 Scripting 主机显式地引用，那么在使用常数之前需要先进行定义。这种情况的例子包括Microsoft Internet Explorer 和 Microsoft Internet Information Services (IIS)。

下面的列表中描述了为 FileSystemObject 提供的不同类型的常数，每种类型都提供了简短的描述：

DriveType 常数
定义了主机上可以使用的各种驱动器类型，例如 Fixed、Removable、CD-ROM 等。

文件属性常数
定义了各种文件属性，例如 Hidden、Read-Only 等。

文件输入/输出常数
定义用于文件输入与输出的常数。

SpecialFolder 常数
定义了操作系统中可以使用的特殊文件夹。


FileSystemObject 常数

FileSystemObject 常数
请参阅 		Scripting 运行时参考

VBScript 常数


其他常数

杂项常数 		语言参考
版本 2

请参阅

因为此常数在 VBScript中被建立, 您在使用之前不必定义它. 您可在代码中任意处使用它来表示说明值.

常数 值 描述
vbObjectError -2147221504 自定义错误号应大于该值，例如，
Err.Raise Number = vbObjectError + 1000


其他常数

其他常数
请参阅 		语言参考

颜色常数
比较常数
日期和时间常数
日期格式常数
MsgBox 常数
字符串常数
三态常数
VarType 常数


MsgBox 常数

MsgBox 常数 		语言参考
版本 2

请参阅

下列常数与 MsgBox 函数一起使用，标识在消息框中出现的按钮、图标，并指定默认按钮。另外，还可以指定消息框的样式。因为这些常数在VBScript中被建立，您在使用之前不必定义它们。您可在代码中任意处使用它们以表示说明值。

常数 | 值 | 描述
vbOKOnly | 0 | 只显示确定按钮。
vbOKCancel | 1 | 显示确定和取消按钮。
vbAbortRetryIgnore | 2 | 显示终止、重试和忽略按钮。
vbYesNoCancel | 3 | 显示是、否和取消按钮。
vbYesNo | 4 | 显示是和否按钮。
vbRetryCancel | 5 | 显示重试和取消按钮。
vbCritical | 16 | 显示临界消息图标。
vbQuestion | 32 | 显示警告询问图标。
vbExclamation | 48 | 显示警告消息图标。
vbInformation | 64 | 显示提示消息图标。
vbDefaultButton1 | 0 | 第一个按钮是默认按钮。
vbDefaultButton2 | 256 | 第二个按钮是默认按钮。
vbDefaultButton3 | 512 | 第三个按钮是默认按钮。
vbDefaultButton4 | 768 | 第四个按钮是默认按钮。
vbApplicationModal | 0 | 应用程序模式。用户必须响应消息框，才能继续在当前应用程序中工作。
vbSystemModal | 4096 | 系统模式。 在 Win16 系统中， 所有应用程序都将中止直到用户响应消息框。 在 Win32 系统中， 此常数提供一个应用程序模式信息框并总是保留在您可能正在运行的所有其它程序的顶部。

下列常数与 MsgBox 函数一起使用，标识用户选定的按钮。仅当类型库中包含以下常数定义，且在您的工程文件中已经显式引用该类型库后，才允许使用这些常数。对于 VBScript，必须在代码中显式声明这些常数。

常数 | 值 | 描述
vbOK | 1 | 确定按钮被单击。
vbCancel | 2 | 取消按钮被单击。
vbAbort | 3 | 终止按钮被单击。
vbRetry | 4 | 重试按钮被单击。
vbIgnore | 5 | 忽略按钮被单击。
vbYes | 6 | 是按钮被单击。
vbNo | 7 | 否按钮被单击。


MsgBox 常数

MsgBox 常数
请参阅 		语言参考

颜色常数
比较常数
日期和时间常数
日期格式常数
其他 常数
字符串常数
Tristate 常数
VarType 常数


SpecialFolder 常数

SpecialFolder 常数 		Scripting 运行时参考
版本 3

请参阅

仅当类型库包含以下常数定义，且在您的工程文件中已经显式引用该类型库后，才允许使用这些常数。对于 VBScript，必须在代码中显式声明这些常数。

常数 | 值 | 描述
WindowsFolder | 0 | Windows 文件夹,包含由 Windows 操作系统安装的文件。
SystemFolder | 1 | System 文件夹,包含库、字体和设备驱动程序文件。
TemporaryFolder | 2 | Temp 文件夹,用于保存临时文件。可在 TMP 环境变量中找到该文件夹的路径。


SpecialFolder 常数

SpecialFolder 常数
请参阅 		Scripting 运行时参考

比较常数
DriveType 常数
FileAttribute 常数
文件输入/输出常数
Tristate 常数


字符串常数

字符串常数 		语言参考
版本 2

请参阅

因为这些常数在 VBScript中被建立， 您在使用之前不必定义它们。 您可在代码中任意处使用它们以表示说明值。

常数 | 值 | 描述
vbCr | Chr(13) | 回车符。
vbCrLf | Chr(13) & Chr(10) | 回车符与换行符。
vbFormFeed | Chr(12) | 换页符；在 Microsoft Windows 中不适用。
vbLf | Chr(10) | 换行符。
vbNewLine | Chr(13) & Chr(10) 或 Chr(10) | 平台指定的新行字符；适用于任何平台。
vbNullChar | Chr(0) | 值为 0 的字符。
vbNullString | 值为 0 的字符串 | 与零长度字符串 ("") 不同；用于调用外部过程。
vbTab | Chr(9) | 水平附签。
vbVerticalTab | Chr(11) | 垂直附签；在 Microsoft Windows 中不适用。


字符串常数

字符串常数
请参阅 		语言参考

颜色常数
比较常数
日期和时间常数
日期格式常数
其他常数
MsgBox 常数
Tristate 常数
VarType 常数


三态常数

三态常数 		语言参考
版本 2

请参阅

这些常数在VBScript中被建立，因此您在使用之前不必定义它们。 您可在代码中任意处使用它们表示说明值。

常数 | 值 | 描述
vbUseDefault | -2 | 使用来自计算机最初设置中的默认值。
vbTrue | -1 | True
vbFalse | 0 | False


Tristate 常数

Tristate 常数
请参阅 		语言参考

颜色常数
比较常数
日期和时间常数
日期格式常数
其他常数
MsgBox常数
字符串常数
VarType 常数


VarType 常数

VarType 常数 		语言参考
版本 2

请参阅

仅当类型库包含以下常数定义，且在您的工程文件中已经显式引用该类型库后，才允许使用这些常数。对于 VBScript，必须在代码中显式声明这些常数。

常数 | 值 | 描述
vbEmpty | 0 | 未初始化（默认）
vbNull | 1 | 不包含任何有效数据
vbInteger | 2 | 整型子类型
vbLong | 3 | 长整型子类型
vbSingle | 4 | 单精度子类型
vbDouble | 5 | 双精度子类型
vbCurrency | 6 | 货币子类型
vbDate | 7 | 日期子类型
vbString | 8 | 字符串子类型
vbObject | 9 | 对象
vbError | 10 | 错误子类型
vbBoolean | 11 | Boolean 子类型
vbVariant | 12 | Variant （仅用于变量数组）
vbDataObject | 13 | 数据访问对象
vbDecimal | 14 | 十进制子类型
vbByte | 17 | 字节子类型
vbArray | 8192 | 数组


VarType 常数

VarType 常数
请参阅 		语言参考

颜色常数
比较常数
日期和时间常数
日期格式常数
其他常数
MsgBox 常数
字符串常数
Tristate 常数


VBScript 常数

VBScript 常数 		语言参考
版本 2

请参阅

VBScript 中设置了一些可以在程序代码中使用的有益常数。常数的便利在于直接使用特定的数值但不需要记住具体的值。如果某些常数的数值可能改变，则使用常数将有助于提高程序的可维护性。由于这些常数已经在 VBScript 中得到定义，在程序代码中不需要显式地声明它们，在需要的地方直接使用它们就可以了。

下面是 VBScript 中提供的常数类型，以及对每种类型的简短描述：

颜色常数
定义了脚本中可以使用的 8 种基本颜色。

日期与时间常数
定义了被各种日期与时间函数使用的日期与时间常数。

日期格式常数
定义了用于规定日期和时间格式的常数。

杂类常数
定义了比较难以归类的常数。

MsgBox 常数
定义了在 MsgBox 函数中使用的常数，用来描述按钮的可见与否、标签、行为和返回值。

字符串常数
定义在字符串操作中可以使用的各种不可打印字符。

三态常数
定义了被规定数字格式的函数使用的常数。

VarType 常数
定义了各种 Variant 子类型。


VBScript 常数

VBScript 常数
请参阅 		语言参考

FileSystemObject 常数


Initialize 事件

Initialize 事件 		语言参考
版本 5

请参阅 应用于

描述
在创建类的实例时发生此事件。
语法
Private Sub classname_Initialize()
statements
End Sub

Initialize 事件有以下语法部分：

部分 | 描述
classname | 必需的。使用 Class 语句定义的类名。
statements | 可选的。在类初始化时要执行的代码。


Initialize ÊÂ¼þ

Initialize ÊÂ¼þ
Ó¦ÓÃÓÚ 		ÓïÑÔ²Î¿¼

Class ¶ÔÏó


Initialize 事件

Initialize 事件
请参阅 		语言参考

Class 对象
Class 语句
Terminate 事件


Terminate 事件

Terminate 事件 		语言参考
版本 5

请参阅 应用于

描述
在所关联的类的实例终止时发生此事件。
语法
Private Sub classname_Terminate()
statements
End Sub

Terminate 事件有以下几个语法部分：

部分 | 描述
classname | 必需的。使用Class语句定义的类名。
statements | 可选的。在类终止时要执行的代码。


Terminate 事件

Terminate 事件
应用于 		语言参考

Class 对象


Terminate 事件

Terminate 事件
请参阅 		语言参考

Class 对象
Class 语句
Initialize 事件


Abs 函数

Abs 函数 		语言参考
版本 1

请参阅

描述
返回数字的绝对值。
语法
Abs(number)

number 参数可以是任意有效的数值表达式。如果 number 包含 Null，则返回 Null；如果是未初始化变量，则返回 0。

说明
数字的绝对值是其无符号的数值大小。例如，Abs(-1) 和 Abs(1) 都返回 1。

下面示例利用 Abs 函数计算数字的绝对值：

Dim MyNumber
MyNumber = Abs(50.3 )  '返回 50.3。
MyNumber = Abs(-50.3) '返回 50.3。


Abs º¯Êý

Abs º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Sgn º¯Êý


Array 函数

Array 函数 		语言参考
版本 2

请参阅

描述
返回包含数组的 Variant。
语法
Array(arglist)

arglist 参数是赋给包含在 Variant 中的数组元素的值的列表（用逗号分隔）。如果没有指定此参数，则将会创建零长度的数组。

说明
用于引用数组元素的表示符，由跟随有括号的变量名组成，括号中包含指示所需元素的索引号。在下面的示例中，第一条语句创建名为 A 的变量。第二条语句将一个数组赋值给变量 A。最后一条语句将包含在第二个数组元素中的值赋值给另一个变量。
Dim A
A = Array(10,20,30)
B = A(2)  ' B is now 30。
注意 未作为数组声明的变量仍可以包含数组。虽然包含数组的 Variant 变量与包含 Variant 元素的数组变量有概念上的不同，但访问数组元素的方法是相同的。


Array º¯Êý

Array º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Dim Óï¾ä


Asc 函数

Asc 函数 		语言参考
版本 1

请参阅

描述
返回与字符串的第一个字母对应的 ANSI 字符代码。
语法
Asc(string)

string 参数是任意有效的字符串表达式。如果 string 参数未包含字符，则将发生运行时错误。

说明
下面例子中, Asc 返回每一个字符串首字母的 ANSI 字符代码:
Dim MyNumber
MyNumber = Asc("A")      '返回 65。
MyNumber = Asc("a")      '返回 97。
MyNumber = Asc("Apple")  '返回 65。
注意 AscB 函数和包含字节数据的字符串一起使用。 AscB 不是返回第一个字符的字符代码，而是返回首字节。 AscW 是为使用 Unicode 字符的 32 位平台提供的。 它返回 Unicode （宽型）字符代码，因此可以避免从 ANSI 到 Unicode 的代码转换。 --------------------------------------------------------------------------------


Asc º¯Êý

Asc º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Chr º¯Êý


Atn 函数

Atn 函数 		语言参考
版本 1

请参阅

描述
返回数值的反正切值。
语法
Atn(number)

number 参数可以是任意有效的数值表达式。

说明
Atn 函数计算直角三角形两个边的比值 (number) 并返回对应角的弧度值。此比值是该角对边的长度与邻边长度之比。 结果的范围是从 -pi/2 到 pi/2 弧度。

弧度变换为角度的方法是将弧度乘以 pi/180。反之，角度变换为弧度的方法是将角度乘以180/pi 。

下面的示例利用 Atn 来计算 pi 的值:

Dim pi
pi = 4 * Atn(1)   ' 计算 pi 的值。
注意 Atn 是 Tan（将角作为参数返回直角三角形两边的比值）的反三角函数。不要混淆 Atn 与余切（正切的倒数 (1/tangent)）函数。


Atn º¯Êý

Atn º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Cos º¯Êý
ÅÉÉúÊýÑ§º¯Êý
Sin º¯Êý
Tan º¯Êý


CBool 函数

CBool 函数 		语言参考
版本 1

请参阅

描述
返回表达式，此表达式已转换为 Boolean 子类型的 Variant。
语法
CBool(expression)

expression 是任意有效的表达式。

说明
如果 expression 是零，则返回 False；否则返回 True。如果 expression 不能解释为数值，则将发生运行时错误。

下面的示例使用 CBool 函数将一个表达式转变成 Boolean 类型。如果表达式所计算的值非零，则 CBool 函数返回 True；否则返回 False。

Dim A, B, Check
A = 5: B = 5            ' 初始化变量。
Check = CBool(A = B)    '复选框设为 True 。

A = 0                   '定义变量。
Check = CBool(A)        '复选框设为 False 。


CBool º¯Êý

CBool º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

CByte º¯Êý
CCur º¯Êý
CDate º¯Êý
CDbl º¯Êý
CInt º¯Êý
CLng º¯Êý
CSng º¯Êý
CStr º¯Êý


CByte 函数

CByte 函数 		语言参考
版本 1

请参阅

描述
返回表达式，此表达式已被转换为 Byte 子类型的 Variant。
语法
CByte(expression)

expression 参数是任意有效的表达式。

说明
通常，可以使用子类型转换函数书写代码，以显示某些操作的结果应被表示为特定的数据类型，而不是默认类型。例如，在出现货币、单精度、双精度或整数运算的情况下，使用 CByte 强制执行字节运算。

CByte 函数用于进行从其他数据类型到 Byte 子类型的的国际公认的格式转换。例如对十进制分隔符（如千分符）的识别，可能取决于系统的区域设置。

如果 expression 在 Byte 子类型可接受的范围之外，则发生错误。下面的示例利用 CByte 函数把 expression 转换为 byte:

Dim MyDouble, MyByte
MyDouble = 125.5678         ' MyDouble 是一个双精度值。
MyByte = CByte(MyDouble)    ' MyByte 包含 126 。


CByte º¯Êý

CByte º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

CBool º¯Êý
CCur º¯Êý
CDate º¯Êý
CDbl º¯Êý
CInt º¯Êý
CLng º¯Êý
CSng º¯Êý
CStr º¯Êý


CCur 函数

CCur 函数 		语言参考
版本 1

请参阅

描述
返回表达式，此表达式已被转换为 Currency 子类型的 Variant。
语法
CCur(expression)

expression 参数是任意有效的表达式。

说明
通常，您可以使用子类型数据转换函数书写代码，以显示某些操作的结果应当被表达为特定的数据类型，而非默认的数据类型。例如在整数运算的情况下，使用 CCur 函数强制进行货币计算。

CCur 函数用于进行从其他数据类型到 Currency 子类型的国际公认的格式转换。例如，对十进制分隔符和千位分隔符的识别取决于系统的区域设置。

下面的示例使用 CCur 函数将一个表达式转换成 Currency 类型:

Dim MyDouble, MyCurr
MyDouble = 543.214588          ' MyDouble 是双精度的。
MyCurr = CCur(MyDouble * 2)    '把 MyDouble * 2 (1086.429176) 的结果转换为
                             ' Currency (1086.4292)。


CCur º¯Êý

CCur º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

CBool º¯Êý
CByte º¯Êý
CDate º¯Êý
CDbl º¯Êý
CInt º¯Êý
CLng º¯Êý
CSng º¯Êý
CStr º¯Êý


CDate 函数

CDate 函数 		语言参考
版本 1

请参阅

描述
返回表达式，此表达式已被转换为 Date 子类型的 Variant。
语法
CDate(date)

date 参数是任意有效的日期表达式。

说明
IsDate 函数用于判断 date 是否可以被转换为日期或时间。CDate 识别日期文字和时间文字，以及一些在可接受的日期范围内的数字。在将数字转换为日期时，数字的整数部分被转换为日期，分数部分被转换为从午夜开始计算的时间。

CDate 根据系统的区域设置识别日期格式。如果数据的格式不能被日期设置识别，则不能判断年、月、日的正确顺序。另外，如果长日期格式包含表示星期几的字符串，则不能被识别。

下面的示例使用 CDate 函数将字符串转换成日期类型。一般不推荐使用硬件译码日期和时间作为字符串（下面的例子已体现）。而使用时间和日期文字 (如 #10/19/1962#, #4:45:23 PM#)。

MyDate = "October 19, 1962"  ' 定义日期。
MyShortDate = CDate(MyDate)  ' 转换为日期数据类型。
MyTime = "4:35:47 PM"  ' 定义时间。
MyShortTime = CDate(MyTime)  ' 转换为日期数据类型。


CDate º¯Êý

CDate º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

IsDate º¯Êý


CDbl 函数

CDbl 函数 		语言参考
版本 1

请参阅

描述
返回表达式，此表达式已被转换为 Double 子类型的 Variant。
语法
CDbl(expression)

expression 参数是任意有效的表达式。

说明
通常，您可以使用子类型数据转换函数书写代码，以显示某些操作的结果应当被表达为特定的数据类型，而非默认的数据类型。例如在出现货币或整数运算的情况下，使用 CDbl 或 CSng 函数强制进行双精度或单精度算术运算。

CDbl 函数用于进行从其他数据类型到 Double 子类型的国际公认的格式转换。例如，十进制分隔符和千位分隔符的识别取决于系统的区域设置。

下面的示例利用 CDbl 函数把 expression 转换为 Double。

 Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)               ' MyCurr 是 Currency 型 (234.4567)。
MyDouble = CDbl(MyCurr * 8.2 * 0.01)    ' 把结果转换为 Double 型 (19.2254576)。


CDbl º¯Êý

CDbl º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

CBool º¯Êý
CByte º¯Êý
CCur º¯Êý
CDate º¯Êý
CInt º¯Êý
CLng º¯Êý
CSng º¯Êý
CStr º¯Êý


Chr 函数

Chr 函数 		语言参考
版本 1

请参阅

描述
返回与指定的 ANSI 字符代码相对应的字符。
语法
Chr(charcode)

charcode 参数是可以标识字符的数字。

说明
从 0 到 31 的数字表示标准的不可打印的 ASCII 代码。例如，Chr(10) 返回换行符。

下面例子利用 Chr 函数返回与指定的字符代码相对应的字符:

Dim MyChar
MyChar = Chr(65)    '返回 A。
MyChar = Chr(97)    '返回 a。
MyChar = Chr(62)    '返回 >。
MyChar = Chr(37)    '返回 %。
注意 ChrB 函数与包含在字符串中的字节数据一起使用。ChrB 不是返回一个或两个字节的字符，而总是返回单个字节的字符。ChrW 是为使用 Unicode 字符的 32 位平台提供的。它的参数是一个 Unicode (宽字符)的字符代码，因此可以避免将 ANSI 转化为 Unicode 字符。


Chr º¯Êý

Chr º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Asc º¯Êý


CInt 函数

CInt 函数 		语言参考
版本 1

请参阅

描述
返回表达式，此表达式已被转换为 Integer 子类型的 Variant。
语法
CInt(expression)

expression 参数是任意有效的表达式。

说明
通常，可以使用子类型转换函数书写代码，以显示某些操作的结果应被表示为特定的数据类型，而不是默认类型。例如，在出现货币、单精度或双精度运算的情况下，使用 CInt 或 CLng 强制执行整数运算。

CInt 函数用于进行从其他数据类型到 Integer 子类型的国际公认的格式转换。例如对十进制分隔符（如千分符）的识别，可能取决于系统的区域设置。

如果 expression 在 Integer 子类型可接受的范围之外，则发生错误。

下面的示例利用 CInt 函数把值转换为 Integer:

Dim MyDouble, MyInt
MyDouble = 2345.5678      ' MyDouble 是 Double。
MyInt = CInt(MyDouble)    ' MyInt 包含 2346。
注意 CInt 不同于 Fix 和 Int 函数删除数值的小数部分，而是采用四舍五入的方式。 当小数部分正好等于 0.5 时, CInt 总是将其四舍五入成最接近该数的偶数。例如， 0.5 四舍五入为 0, 以及 1.5 四舍五入为 2.


CInt º¯Êý

CInt º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

CBool º¯Êý
CByte º¯Êý
CCur º¯Êý
CDate º¯Êý
CDbl º¯Êý
CLng º¯Êý
CSng º¯Êý
CStr º¯Êý
Int¡¢Fix º¯Êý


CLng 函数

CLng 函数 		语言参考
版本 1

请参阅

描述
返回表达式，此表达式已被转换为 Long 子类型的 Variant。
语法
CLng(expression)

expression 参数是任意有效的表达式。

说明
通常，您可以使用子类型数据转换函数书写代码，以显示某些操作的结果应当被表达为特定的数据类型，而非默认的数据类型。例如，在出现货币运算、单精度或双精度算术运算的情况下，使用 CInt 或 CLng 函数强制进行整数运算。

CLng 函数用于进行从其他数据类型到 Long 子类型的的国际公认的格式转换。例如，对十进制分隔符和千位分隔符的识别取决于系统的区域设置。

如果 expression 取值不在 Long 子类型的允许范围内，则会出现错误。

下面的示例利用 CLng 函数把值转换为 Long:

Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45: MyVal2 = 25427.55  ' MyVal1, MyVal2 是双精度值。
MyLong1 = CLng(MyVal1)  ' MyLong1 25427。
MyLong2 = CLng(MyVal2)   ' MyLong2 包含 25428 。
注意 CLng 不同于 Fix 和 Int 函数删除小数部分， 而是采用四舍五入的方式。 当小数部分正好等于 0.5 时， CLng 函数总是将其四舍五入为最接近该数的偶数。如， 0.5 四舍五入为 0, 以及 1.5 四舍五入为 2 。


CLng º¯Êý

CLng º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

CBool º¯Êý
CByte º¯Êý
CCur º¯Êý
CDate º¯Êý
CDbl º¯Êý
CInt º¯Êý
CSng º¯Êý
CStr º¯Êý
Int¡¢Fix º¯Êý


Cos 函数

Cos 函数 		语言参考
版本 1

请参阅

描述
返回某个角的余弦值。
语法
Cos(number)

number 参数可以是任何将某个角表示为弧度的有效数值表达式。

说明
Cos 函数取某个角并返回直角三角形两边的比值。此比值是直角三角形中该角的邻边长度与斜边长度之比。 结果范围在 -1 到 1 之间。

角度转化成弧度方法是用角度乘以 pi/180 。 反之，弧度转化成角度的方法是用弧度乘以 180/pi 。

下面的示例利用 Cos 函数返回一个角的余弦值:

Dim MyAngle, MySecant
MyAngle = 1.3                ' 用弧度定义一个角。
MySecant = 1 / Cos(MyAngle)  ' 计算正割。


Cos º¯Êý

Cos º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Atn º¯Êý
ÅÉÉúÊýÑ§º¯Êý
Sin º¯Êý
Tan º¯Êý


CreateObject 函数

CreateObject 函数 		语言参考
版本 2

请参阅

描述
创建并返回对 Automation 对象的引用。
语法
CreateObject(servername.typename [, location])

CreateObject 函数语法 ，有以下部分：

部分 | 描述
servername | 要求。提供对象的应用程序名称。
typename | 要求。要创建的对象类型或类。
location | 可选的。对象所在的网络服务器将被创建。

说明
Automation 服务器至少提供一种对象类型。例如，字处理应用程序可以提供应用程序对象、文档对象和工具条对象。

要创建 Automation 对象，将 CreateObject 函数返回的对象赋值给某对象变量：

Dim ExcelSheet
Set ExcelSheet = CreateObject("Excel.Sheet")
上述代码启动创建对象（在此实例中，是 Microsoft Excel 电子表格）的应用程序。对象创建后，就可以在代码中使用定义的对象变量引用此对象。在下面的示例中，可使用对象变量、ExcelSheet 和其他 Excel 对象，包括 Application 对象和 Cells 集合访问新对象的属性和方法。例如：
 通过 Application 对象使 Excel 可见。
ExcelSheet.Application.Visible = True
' 在工作表的第一个单元中放置文本。
ExcelSheet.ActiveSheet.Cells(1,1).Value = "这是 A 列第一行"
' 保存工作表。
ExcelSheet. SaveAs "C:\DOCS\TEST.XLS"
' 在 Application 对象中使用 Quit 方法退出 Excel。
ExcelSheet.Application.Quit
' 释放对象变量。
Set ExcelSheet= Nothing
在远程服务器上创建一个对象，当 Internet 安全关闭时只能完成。通过传递计算机名到 CreateObject 服务器名的参数，能在远程网络上创建对象。该名称如同共享部份的机器名。例如网络共享名命名为： "\\myserver\public", servername 是 "myserver"。另外,只能指定 servername 使用 DNS 格式或 IP 地址。

以下代码返回运行在命名为"myserver"的远程网络计算机上 Excel 实例的版本号 :

Function GetVersion
  Dim XLApp
  Set XLApp = CreateObject("Excel.Application", "MyServer")
  GetVersion = XLApp.Version
End Function
错误发生在指定的远程服务器不存在或无法找到。


CreateObject º¯Êý

CreateObject º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

GetObject º¯Êý


CSng 函数

CSng 函数 		语言参考
版本 1

请参阅

描述
返回表达式，该表达式已被转换为 Single 子类型的 Variant。
语法
CSng(expression)

expression 参数是任意有效的表达式。

说明
通常，可以使用子类型转换函数书写代码，以显示某些操作的结果应被表示为特定的数据类型，而不是默认类型。例如，在出现货币或整数运算的情况下，使用 CDbl 或 CSng 强制执行双精度或单精度运算。

CSng 函数用于进行从其他数据类型到 Single 子类型的国际公认的格式转换。例如，对十进制分隔符（如千分符）的识别取决于系统的区域设置。

如果 expression 在 Single 子类型允许的范围之外，则发生错误。

下面的示例利用 CSng 函数把值转换为 Single:

Dim MyDouble1, MyDouble2, MySingle1, MySingle2  ' MyDouble1, MyDouble2 是双精度值。
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555
MySingle1 = CSng(MyDouble1)  ' MySingle1 包含 75.34211 。
MySingle2 = CSng(MyDouble2)  ' MySingle2 包含 75.34216 。


CSng º¯Êý

CSng º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

CBool º¯Êý
CByte º¯Êý
CCur º¯Êý
CDate º¯Êý
CDbl º¯Êý
CInt º¯Êý
CLng º¯Êý
CStr º¯Êý


CStr 函数

CStr 函数 		语言参考
版本 1

请参阅

描述
返回表达式，该表达式已被转换为 String 子类型的 Variant。
语法
CStr(expression)

expression 参数是任意有效的表达式。

说明
通常，可以使用子类型转换函数书写代码，以显示某些操作的结果应被表示为特定的数据类型，而不是默认类型。例如，使用 CStr 强制将结果表示为 String。

CStr 函数用于替代 Str 函数来进行从其他数据类型到 String 子类型的国际公认的格式转换。例如对十进制分隔符的识别取决于系统的区域设置。

expression 根据下表决定返回的数据：

如果 expression 为 | CStr 返回
Boolean | 字符串，包含 True 或 False。
Date | 字符串，包含系统的短日期格式日期。
Null | 运行时错误。
Empty | 零长度字符串 ("")。
Error | 字符串，包含跟随有错误号码的单词 Error。
其他数值 | 字符串，包含此数字。

下面的示例利用 CStr 函数把数字转换为 String:

Dim MyDouble, MyString
MyDouble = 437.324         ' MyDouble 是双精度值。
MyString = CStr(MyDouble)  ' MyString 包含 "437.324"。


CStr º¯Êý

CStr º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

CBool º¯Êý
CByte º¯Êý
CCur º¯Êý
CDate º¯Êý
CDbl º¯Êý
CInt º¯Êý
CLng º¯Êý
CSng º¯Êý


Date 函数

Date 函数 		语言参考
版本 1

请参阅

描述
返回当前系统日期。
语法
Date
Remarks
下面的示例利用 Date 函数返回当前系统日期:
Dim MyDate
MyDate = Date    ' MyDate 包含当前系统日期。


DateAdd 函数

DateAdd 函数 		语言参考
版本 2

请参阅

描述
返回已添加指定时间间隔的日期。
语法
DateAdd(interval, number, date)

DateAdd 函数的语法有以下部分：

部分 | 描述
interval | 必选。字符串表达式，表示要添加的时间间隔。有关数值，请参阅“设置”部分。
number | 必选。数值表达式，表示要添加的时间间隔的个数。数值表达式可以是正数（得到未来的日期）或负数（得到过去的日期）。
date | 必选。Variant 或要添加 interval 的表示日期的文字。

设置
interval 参数可以有以下值：

设置 | 描述
yyyy | 年
q | 季度
m | 月
y | 一年的日数
d | 日
w | 一周的日数
ww | 周
h | 小时
n | 分钟
s | 秒

说明
可用 DateAdd 函数从日期中添加或减去指定时间间隔。例如可以使用 DateAdd 从当天算起 30 天以后的日期或从现在算起 45 分钟以后的时间。要向 date 添加以“日”为单位的时间间隔，可以使用“一年的日数”（“y”）、“日”（“d”）或“一周的日数”（“w”）。

DateAdd 函数不会返回无效日期。如下示例将 95 年 1 月 31 日加上一个月：

NewDate = DateAdd("m", 1, "31-Jan-95")
在这个示例中，DateAdd 返回 95 年 2 月 28 日，而不是 95 年 2 月 31 日。如果 date 为 96 年 1 月 31 日，则返回 96 年 2 月 29 日，这是因为 1996 是闰年。

如果计算的日期是在公元 100 年之前，则会产生错误。

如果 number 不是 Long 型值，则在计算前四舍五入为最接近的整数。


DateAdd º¯Êý

DateAdd º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

DateDiff º¯Êý
DatePart º¯Êý


Date º¯Êý

Date º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

CDate º¯Êý
Now º¯Êý
Time º¯Êý


DateDiff 函数

DateDiff 函数 		语言参考
版本 2

请参阅

描述
返回两个日期之间的时间间隔。
语法
DateDiff(interval, date1, date2 [,firstdayofweek[, firstweekofyear]])

DateDiff 函数的语法有以下参数：

参数 | 描述
interval | 必选。String expression 表示用于计算 date1 和 date2 之间的时间间隔。有关数值，请参阅“设置”部分。
date1, date2 | 必选。日期表达式。用于计算的两个日期。
firstdayofweek | 可选。指定星期中第一天的常数。如果没有指定，则默认为星期日。有关数值，请参阅“设置”部分。
firstweekofyear | 可选。指定一年中第一周的常数。如果没有指定，则默认为 1 月 1 日所在的星期。有关数值，请参阅“设置”部分。

设置
interval 参数可以有以下值：

设置 | 描述
yyyy | 年
q | 季度
n | 月
y | 一年的日数
d | 日
w | 一周的日数
ww | 周
h | 小时
m | 分钟
s | 秒

firstdayofweek 参数可以有以下值：

常数 | 值 | 描述
vbUseSystem | 0 | 使用区域语言支持 (NLS) API 设置。
vbSunday | 1 | 星期日（默认）
vbMonday | 2 | 星期一
vbTuesday | 3 | 星期二
vbWednesday | 4 | 星期三
vbThursday | 5 | 星期四
vbFriday | 6 | 星期五
vbSaturday | 7 | 星期六

firstweekofyear 参数可以有以下值：

常数 | 值 | 描述
vbUseSystem | 0 | 使用区域语言支持 (NLS) API 设置。
vbFirstJan1 | 1 | 由 1 月 1 日所在的星期开始（默认）。
vbFirstFourDays | 2 | 由在新年中至少有四天的第一周开始。
vbFirstFullWeek | 3 | 由在新的一年中第一个完整的周开始。

说明
DateDiff 函数用于判断在两个日期之间存在的指定时间间隔的数目。例如可以使用 DateDiff 计算两个日期相差的天数，或者当天到当年最后一天之间的星期数。

要计算 date1 和 date2 相差的天数，可以使用“一年的日数”（“y”）或“日”（“d”）。当 interval 为“一周的日数”（“w”）时，DateDiff 返回两个日期之间的星期数。如果 date1 是星期一，则 DateDiff 计算到 date2 之前星期一的数目。此结果包含 date2 而不包含 date1。如果 interval 是“周”（“ww”），则 DateDiff 函数返回日历表中两个日期之间的星期数。函数计算 date1 和 date2 之间星期日的数目。如果 date2 是星期日，DateDiff 将计算 date2，但即使 date1 是星期日，也不会计算 date1。

如果 date1 晚于 date2，则 DateDiff 函数返回负数。

firstdayofweek 参数会对使用“w”和“ww”间隔符号的计算产生影响。

如果 date1 或 date2 是日期文字，则指定的年度会成为日期的固定部分。但是如果 date1 或 date2 被包括在引号 (" ") 中并且省略年份，则在代码中每次计算 date1 或 date2 表达式时，将插入当前年份。这样就可以编写适用于不同年份的程序代码。

在 interval 为“年”（“yyyy”）时，比较 12 月 31 日和来年的 1 月 1 日，虽然实际上只相差一天，DateDiff 返回 1 表示相差一个年份。

下面的示例利用 DateDiff 函数显示今天与给定日期之间间隔天数:

Function DiffADate(theDate)
  DiffADate = "从当天开始的天数:" & DateDiff("d", Now, theDate)
End Function


DateDiff º¯Êý

DateDiff º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

DateAdd º¯Êý
DatePart º¯Êý


DatePart 函数

DatePart 函数 		语言参考
版本 2

请参阅

描述
返回给定日期的指定部分。
语法
DatePart(interval, date[, firstdayofweek[, firstweekofyear]])

DatePart 函数的语法有以下参数：

参数 | 描述
interval | 必选。字符串表达式表示要返回的时间间隔。有关数值，请参阅“设置”部分。
date | 必选。要计算的日期表达式。
firstdayof week | 可选。指定星期中的第一天的常数。如果没有指定，则默认为星期日。有关数值，请参阅“设置”部分。
firstweekofyear | 可选。指定一年中第一周的常数。如果没有指定，则默认为 1 月 1 日所在的星期。有关数值，请参阅“设置”部分。

设置
interval 参数可以有以下值：

设置 | 描述
yyyy | 年
q | 季度
m | 月
y | 一年的日数
d | 日
w | 一周的日数
ww | 周
h | 小时
n | 分钟
s | 秒

firstdayofweek 参数可以有以下值：

常数 | 值 | 描述
vbUseSystem | 0 | 使用区域语言支持 (NLS) API 设置。
vbSunday | 1 | 星期日（默认）
vbMonday | 2 | 星期一
vbTuesday | 3 | 星期二
vbWednesday | 4 | 星期三
vbThursday | 5 | 星期四
vbFriday | 6 | 星期五
vbSaturday | 7 | 星期六

firstweekofyear 参数可以有以下值：

常数 | 值 | 描述
vbUseSystem | 0 | 使用区域语言支持 (NLS) API 设置。
vbFirstJan1 | 1 | 由 1 月 1 日所在的星期开始（默认）。
vbFirstFourDays | 2 | 由在新年中至少有四天的第一周开始。
vbFirstFullWeek | 3 | 由在新的一年中第一个完整的周（不跨年度）开始。

说明
DatePart 函数用于计算日期并返回指定的时间间隔。例如使用 DatePart 计算某一天是星期几或当前的时间。

firstdayofweek 参数会影响使用“w”和“ww”间隔符号的计算。

如果 date 是日期文字，则指定的年度会成为日期的固定部分。但是如果 date 被包含在引号 (" ") 中，并且省略年份，则在代码中每次计算 date 表达式时，将插入当前年份。这样就可以编写适用于不同年份的程序代码。.

下面的示例利用 DatePart 函数获得日期并显示该日所在的季节。

 Function GetQuarter(TheDate)
  GetQuarter = DatePart("q", TheDate)
End Function


DatePart º¯Êý

DatePart º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

DateAdd º¯Êý
DateDiff º¯Êý


DateSerial 函数

DateSerial 函数 		语言参考
版本 1

请参阅

描述
对于指定的年、月、日，返回 Date 子类型的 Variant。
语法
DateSerial(year, month, day)

DateSerial 函数的语法有以下参数：

参数 | 描述
year | 从 100 到 9999 之间的数字或数值表达式。
month | 任意数值表达式。
day | 任意数值表达式。

说明
要指定日期，如 1991 年 12 月 31 日，DateSerial 函数中每个参数的取值范围都应该是可接受的；即日的取值应在 1 和 31 之间，月的取值应在 1 和 12 之间。但是，也可以使用表示某日之前或之后的年、月、日数目的数值表达式为每个参数指定相对日期。

以下样例中使用了数值表达式代替绝对日期。在这里，DateSerial 函数返回 1990 年 8 月 1 日之前十年 (1990 - 10) 零两个月 (8 - 2) 又一天 (1 - 1) 的日期：即 1980 年 5 月 31 日。

Dim MyDate1, MyDate2
MyDate1 = DateSerial(1970, 1, 1)			' Returns January 1, 1970.
MyDate2 = DateSerial(1990 - 10, 8 - 2, 1 - 1)	' Returns May 31, 1980.
对于 year 参数，若取值范围是从 0 到 99，则被解释为 1900 到 1999 年。对于此范围之外的 year 参数，则使用四位数字表示年份（例如 1800 年）。

当任何一个参数的取值超出可接受的范围时，则会适当地进位到下一个较大的时间单位。例如，如果指定了 35 天，则这个天数被解释成一个月加上多出来的日数，多出来的日数取决于其年份和月份。但是如果参数值超出 -32,768 到 32,767 的范围，或者由三个参数指定（无论是直接还是通过表达式指定）的日期超出了可以接受的日期范围，就会发生错误。


DateSerial º¯Êý

DateSerial º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Date º¯Êý
DateValue º¯Êý
Day º¯Êý
Month º¯Êý
Now º¯Êý
TimeSerial º¯Êý
TimeValue º¯Êý
Weekday º¯Êý
Year º¯Êý


DateValue 函数

DateValue 函数 		语言参考
版本 1

请参阅

Description
返回 Date 子类型的 Variant。
语法
DateValue(date)

date 参数应是字符串表达式，表示从 100 年 1 月 1 日到 9999 年 12 月 31 日中的一个日期。但是，date 也可以是表示上述范围内的日期、时间或日期时间混合的任意表达式。

说明
如果 date 参数包含时间信息，则 DateValue 不会返回时间信息。但是如果 date 包含无效的时间信息（如 "89:98"），就会出现错误。

如果 date 是某一字符串，其中仅包含由有效的日期分隔符分隔开的数字，则 DateValue 将会根据为系统指定的短日期格式识别月、日和年的顺序。DateValue 还会识别包含月份名称（无论是全名还是缩写）的明确日期。例如，除了能够识别 12/30/1991 和 12/30/91 之外，DateValue 还能识别 December 30, 1991 和 Dec 30, 1991。

如果省略了 date 的年份部分，DateValue 将使用计算机系统日期中的当前年份。

下面的示例利用 DateValue 函数将字符串转化成日期。也可以利用日期文字直接将日期分配给 Variant 变量， 例如， MyDate = #9/11/63#.

Dim MyDate
MyDate = DateValue("September 11, 1963")    ' 返回日期。


DateValue º¯Êý

DateValue º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

CDate º¯Êý
DateSerial º¯Êý
Day º¯Êý
Month º¯Êý
Now º¯Êý
TimeSerial º¯Êý
TimeValue º¯Êý
Weekday º¯Êý
Year º¯Êý


Day 函数

Day 函数 		语言参考
版本 1

请参阅

描述
返回 1 到 31 之间的一个整数（包括 1 和31），代表某月中的一天。
语法
date 参数是任意可以代表日期的表达式。如果 date 参数中包含 Null，则返回 Null。

下面例子利用 Day 函数得到一个给定日期月的天数:

Dim MyDay
MyDay = Day("October 19, 1962")  'MyDay 包含 19。


Day º¯Êý

Day º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Date º¯Êý
Hour º¯Êý
Minute º¯Êý
Month º¯Êý
Now º¯Êý
Second º¯Êý
Weekday º¯Êý
Year º¯Êý


Eval 函数

Eval 函数 		语言参考
版本 5

请参阅

描述
计算一个表达式的值并返回结果。
语法
[result = ]Eval(expression)

Eval 函数的语法中包含下面几部分：

部分 | 描述
result | 可选的。 是一个变量，用于接受返回的结果。如果未指定结果，应考虑使用 Execute 语句代替。
expression | 必需的。可以是包含任何有效 VBScript 表达式的字符串。

说明
在 VBScript 中，x = y 可以有两种解释。第一种方式是赋值语句，将 y 的值赋予 x。第二种解释是测试 x 和 y 是否相等。如果相等，result 为 True；否则 result 为 False。Eval 方法总是采用第二种解释，而 Execute 语句总是采用第一种。

注意 在Microsoft(R) JScript 中不存在这种比较与赋值的混淆，因为赋值运算符(=)与比较运算符 (==)不同。

下面的例子说明了 Eval 函数的用法：

Sub GuessANumber
  Dim Guess, RndNum
  RndNum = Int((100) * Rnd(1) + 1)
  Guess = CInt(InputBox("Enter your guess:",,0))
  Do
    If Eval("Guess = RndNum") Then
      MsgBox "祝贺你！猜对了！"
      Exit Sub
    Else
      Guess = CInt(InputBox("对不起，请再试一次",,0))
    End If
  Loop Until Guess = 0
End Sub


Eval º¯Êý

Eval º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Execute Óï¾ä


Exp 函数

Exp 函数 		语言参考
版本 1

请参阅

描述
返回 e（自然对数的底）的幂次方。
语法
Exp(number)

number 参数可以是任意有效的数值表达式。

说明
如果 number 参数超过 709.782712893，则出现错误。常数 e 的值约为 2.718282。
注意 Exp 函数完成 Log 函数的反运算，并且有时引用为反对数形式。

下面的示例利用 Exp 函数返回 e 的幂次方:

Dim MyAngle, MyHSin  ' 用弧度定义角。
MyAngle = 1.3        '计算双曲线的正弦。
MyHSin = (Exp(MyAngle) - Exp(-1 * MyAngle)) / 2


Exp º¯Êý

Exp º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

ÅÉÉúÊýÑ§º¯Êý
Log º¯Êý


Filter 函数

Filter 函数 		语言参考
版本 2

请参阅

描述
返回下标从零开始的 数组，其中包含以特定过滤条件为基础的字符串数组的子集。
语法
Filter(InputStrings, Value[, Include[, Compare]])

Filter 函数的语法有以下参数：

参数 | 描述
InputStrings | 必选。一维数组，要在其中搜索字符串。
Value | 必选。要搜索的字符串。
Include | 可选。Boolean 值，指定返回的子字符串是否包含 Value。如果 Include 为 True，Filter 将返回包含子字符串 Value 的数组子集。如果 Include 为 False，Filter 将返回不包含子字符串 Value 的数组子集。
Compare | 可选。数字值指出使用的比较字符串 类型.请参阅值设置部分.

设置
Compare 参数可以有以下值：

常数 | 值 | 描述
vbBinaryCompare | 0 | 执行二进制比较。
vbTextCompare | 1 | 执行文本比较。

说明
如果在 InputStrings 中没有找到与 Value 匹配的值，Filter 将返回空数组。如果 InputStrings 为 Null 或者不是一维数组，则会发生错误。

由 Filter 函数返回的数组仅包含足以包含匹配项数目的元素。

下面例子利用 Filter 函数返回包含搜索条件 "Mon" 的数组:

Dim MyIndex
Dim MyArray (3)
MyArray(0) = "Sunday"
MyArray(1) = "Monday"
MyArray(2) = "Tuesday"
MyIndex = Filter(MyArray, "Mon") 'MyIndex(0) 包含 "Monday"。


Filter º¯Êý

Filter º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Replace º¯Êý


FormatCurrency 函数

FormatCurrency 函数 		语言参考
版本 2

请参阅

描述
返回表达式，此表达式已被格式化为货币值（使用系统控制面板中定义的货币符号）。
语法
FormatCurrency(expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]])

FormatCurrency 函数的语法有以下参数：

参数 | 描述
expression | 必选。要被格式化的表达式。
NumDigitsAfterDecimal | 可选。指示小数点右侧显示位数的数值。默认值为 -1，指示使用的是计算机的区域设置。
IncludeLeadingDigit | 可选。三态常数，指示是否显示小数值小数点前面的零。有关数值，请参阅“设置”部分。
UseParensForNegativeNumbers | 可选。三态常数，指示是否将负值置于括号中。有关数值，请参阅“设置”部分。
GroupDigits | 可选。三态常数，指示是否使用计算机区域设置中指定的数字分组符号将数字分组。有关数值，请参阅“设置”部分。

设置
IncludeLeadingDigit、UseParensForNegativeNumbers 和 GroupDigits 参数可以有以下值：

常数 | 值 | 描述
TristateTrue | -1 | True
TristateFalse | 0 | False
TristateUseDefault | -2 | 使用计算机区域设置中的设置。

说明
当省略一个或多个可选参数时，由计算机区域设置提供被省略参数的值。 与货币值相关的货币符号的位置由系统的区域设置决定。

注意 除“显示起始的零”设置来自区域设置的“数字”附签外，所有其他设置信息均取自区域设置的“货币”附签。

下面例子利用 FormatCurrency 函数把 expression 格式化为 currency 并且赋值给 MyCurrency:

Dim MyCurrency
MyCurrency = FormatCurrency(1000)  'MyCurrency 包含 $1000.00 。


FormatCurrency º¯Êý

FormatCurrency º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

FormatDateTime º¯Êý
FormatNumber º¯Êý
FormatPercent º¯Êý


FormatDateTime 函数

FormatDateTime 函数 		语言参考
版本 2

请参阅

描述
返回表达式，此表达式已被格式化为日期或时间。
语法
FormatDateTime(Date[, NamedFormat])

FormatDateTime 函数的语法有以下参数：

参数 | 描述
Date | 必选。要被格式化的日期表达式。
NamedFormat | 可选。指示所使用的日期/时间格式的数值，如果省略，则使用 vbGeneralDate。

设置
NamedFormat 参数可以有以下值：

常数 | 值 | 描述
vbGeneralDate | 0 | 显示日期和/或时间。如果有日期部分，则将该部分显示为短日期格式。如果有时间部分，则将该部分显示为长时间格式。如果都存在，则显示所有部分。
vbLongDate | 1 | 使用计算机区域设置中指定的长日期格式显示日期。
vbShortDate | 2 | 使用计算机区域设置中指定的短日期格式显示日期。
vbLongTime | 3 | 使用计算机区域设置中指定的时间格式显示时间。
vbShortTime | 4 | 使用 24 小时格式 (hh:mm) 显示时间。

说明
下面例子利用 FormatDateTime 函数把表达式格式化为长日期型并且把它赋给 MyDateTime:
 Function GetCurrentDate
  'FormatDateTime 把日期型格式化为长日期型。
  GetCurrentDate = FormatDateTime(Date, 1)
End Function


FormatDateTime º¯Êý

FormatDateTime º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

FormatCurrency º¯Êý
FormatNumber º¯Êý
FormatPercent º¯Êý


FormatNumber 函数

FormatNumber 函数 		语言参考
版本 2

请参阅

描述
返回表达式，此表达式已被格式化为数值。
语法
FormatNumber(expression [,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]])

FormatNumber 函数的语法有以下参数：

参数 | 描述
expression | 必选。要被格式化的表达式。
NumDigitsAfterDecimal | 可选。指示小数点右侧显示位数的数值。默认值为 -1，指示使用的是计算机的区域设置。
IncludeLeadingDigit | 可选。三态常数，指示是否显示小数值小数点前面的零。有关数值，请参阅“设置”部分。
UseParensForNegativeNumbers | 可选。三态常数，指示是否将负值置于括号中。有关数值，请参阅“设置”部分。
GroupDigits | 可选。三态常数，指示是否使用计算机区域设置中指定的数字分组符号将数字分组。有关数值，请参阅“设置”部分。

设置
IncludeLeadingDigit、UseParensForNegativeNumbers 和 GroupDigits 参数可以有以下值：

常数 | 值 | 描述
TristateTrue | -1 | True
TristateFalse | 0 | False
TristateUseDefault | -2 | 使用计算机区域设置中的设置。

说明
当省略一个或多个可选参数时，由计算机区域设置提供被省略参数的值。
注意 所有设置信息均取自区域设置的“数字”附签。

下面例子利用 FormatNumber 函数把数值格式化为带四位小数点的数:

 Function FormatNumberDemo
  Dim MyAngle, MySecant, MyNumber
  MyAngle = 1.3                ' 用弧度定义角。
  MySecant = 1 / Cos(MyAngle)  ' 计算正割值。
  FormatNumberDemo = FormatNumber(MySecant,4) ' 把 MySecant 格式化为带四位小数点的数。
End Function


FormatNumber º¯Êý

FormatNumber º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

FormatCurrency º¯Êý
FormatDateTime º¯Êý
FormatPercent º¯Êý


FormatPercent 函数

FormatPercent 函数 		语言参考
版本 2

请参阅

描述
返回表达式，此表达式已被格式化为尾随有 % 符号的百分比（乘以 100 ）。
语法
FormatPercent(expression[,NumDigitsAfterDecimal [,IncludeLeadingDigit [,UseParensForNegativeNumbers [,GroupDigits]]]])

FormatPercent 函数的语法有以下参数：

参数 | 描述
expression | 必选。要被格式化的表达式。
NumDigitsAfterDecimal | 可选。指示小数点右侧显示位数的数值。默认值为 -1，指示使用的是计算机的区域设置。
IncludeLeadingDigit | 可选。三态常数，指示是否显示小数值小数点前面的零。有关数值，请参阅“设置”部分。
UseParensForNegativeNumbers | 可选。三态常数，指示是否将负值置于括号中。有关数值，请参阅“设置”部分。
GroupDigits | 可选。三态常数，指示是否使用计算机区域设置中指定的数字分组符号将数字分组。有关数值，请参阅“设置”部分。

设置
IncludeLeadingDigit、UseParensForNegativeNumbers 和 GroupDigits 参数可以有以下值：

常数 | 值 | 描述
TristateTrue | -1 | True
TristateFalse | 0 | False
TristateUseDefault | -2 | 使用计算机区域设置中的设置。

说明
当省略一个或多个可选参数时，由计算机区域设置提供被省略参数的值。
注意 所有设置信息均取自区域设置的“数字”附签。

下面例子利用 FormatPercent 函数把表达式格式化为百分数:

Dim MyPercent
MyPercent = FormatPercent(2/32) 'MyPercent 包含 6.25%。


FormatPercent º¯Êý

FormatPercent º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

FormatCurrency º¯Êý
FormatDateTime º¯Êý
FormatNumber º¯Êý


GetObject 函数

GetObject 函数 		语言参考
版本 2

请参阅

描述
返回对文件中 Automation 对象的引用。
语法
GetObject([pathname] [, class])

GetObject 函数的语法有以下参数：

参数 | 描述
pathname | 可选。字符串，包含待检索对象的文件的完整路径和名称。如果省略 pathname 则必须有 class。
class | 可选。字符串，对象的类。

class 参数的语法格式为 appname.objectype，其中包括以下部分：

部分 | 描述
appname | 必选。字符串，提供对象的应用程序名称。
objectype | 必选。字符串，要创建的对象的类型或类。

说明
使用 GetObject 函数可以访问文件中的 Automation 对象，而且可以将该对象赋值给对象变量。使用 Set 语句将 GetObject 返回的对象赋值给对象变量。例如：
Dim CADObject
Set CADObject = GetObject("C:\CAD\SCHEMA.CAD")
在执行上述代码时，就会启动与指定路径名相关联的应用程序，同时激活指定文件中的对象。如果 pathname 是零长度字符串 ("")，GetObject 返回指定类型的新对象实例。如果省略 pathname 参数，GetObject 将返回指定类型的当前活动对象。如果没有指定类型的对象，就会出现错误。

某些应用程序允许只激活文件的一部分，方法是在文件名后加上一个惊叹号 (!) 以及用于标识要激活的文件部分的字符串。有关创建这种字符串的详细信息，请参阅创建对象的应用程序的有关文档。

例如，在绘图应用程序中，一个存放在文件中的图可能有多层。可以使用下述代码来激活图 SCHEMA.CAD 中的某一层：

Set LayerObject = GetObject("C:\CAD\SCHEMA.CAD!Layer3")
如果没有指定对象的类，则 Automation 会根据所提供的文件名，确定要启动的应用程序以及要激活的对象。但是，有些文件可能支持多个对象类。例如，图可能支持三种不同类型的对象：Application 对象、Drawing 对象和 Toolbar 对象，所有这些都是同一个文件中的一部分。使用可选的 class 参数可以指定文件中要激活的对象。例如：
Dim MyObject
Set MyObject = GetObject("C:\DRAWINGS\SAMPLE.DRW", "FIGMENT.DRAWING")
在上述样例中，FIGMENT 是绘图应用程序的名称，而 DRAWING 则是它支持的一种对象类型。对象被激活之后，就可以在代码中使用所定义的对象变量来引用它。在前面的例子中，可以使用对象变量 MyObject 访问新对象的属性和方法。例如：
MyObject.Line 9, 90
MyObject.InsertText 9, 100, "嗨，你好！"
MyObject.SaveAs "C:\DRAWINGS\SAMPLE.DRW"
注意 在对象的当前实例存在，或者要用已加载的文件创建对象时，请使用 GetObject 函数。如果没有当前实例，并且不准备使用已加载的文件启动对象，请使用 CreateObject 函数。

如果对象已注册为单个实例的对象，则无论执行多少次 CreateObject，都只能创建该对象的一个实例。若使用单个实例对象，当使用零长度字符串 ("") 语法调用时，GetObject 总是返回同一个实例，而如果省略 pathname 参数，则会出现错误。


GetObject º¯Êý

GetObject º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

CreateObject º¯Êý


GetRef 函数

GetRef 函数 		语言参考
版本 5

请参阅

描述
返回一个指向一过程的引用，此过程可绑定某事件。
语法
Set object.eventname = GetRef(procname)

GetRef 函数的语法包括以下部分：

部分 | 描述
object | 必需的。事件所关联的对象的名称。
eventname | 必需的。要与函数绑定的事件的名称。
procname | 必需的。该字符串中包含 Sub 或 Function 过程的名称，该过程与事件关联。

说明
GetRef 函数可以用来将 VBScript 过程 (Function 或 Sub） 与 DHTML (动态 HTML)页面中可用的任何事件联系在一起。DHTML 对象模型为不同对象提供了与各种可用事件有关的信息。

在其他脚本和程序设计语言中，GetRef 所提供的功能被称为函数指针，即它指向了在指定事件发生时要执行的过程的地址。

下面的例子说明了 GetRef 函数的使用：

<SCRIPT LANGUAGE="VBScript">

Function GetRefTest()
  Dim Splash
  Splash = "GetRefTest Version 1.0"  & vbCrLf
  Splash = Splash & Chr(169) & " YourCompany 1998 "
  MsgBox Splash
End Function

Set Window.Onload = GetRef("GetRefTest")

</SCRIPT>


GetRef º¯Êý

GetRef º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Function Óï¾ä
Set Óï¾ä
Sub Óï¾ä


Hex 函数

Hex 函数 		语言参考
版本 1

请参阅

描述
返回表示十六进制数字值的字符串。
语法
Hex(number)

number 参数是任意有效的表达式。

说明
如果 number 参数不是整数，则在进行运算前将其四舍五入为最接近的整数。

如果 number 是 | Hex 返回
Null | Null。
Empty | 零 (0)。
其他数 | 最大到八位的十六进制字符。

您可以通过在数字前面添加前缀 &H 来表示十六进制数。例如，在十六进制计数法中，&H10 表示十进制数 16。

下面的示例利用 Hex 函数返回数字的十六进制数:

Dim MyHex
MyHex = Hex(5)    ' 返回 5。
MyHex = Hex(10)   ' 返回A。
MyHex = Hex(459)  '返回 1CB。


Hex º¯Êý

Hex º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Oct º¯Êý


Hour 函数

Hour 函数 		语言参考
版本 1

请参阅

描述
返回 0 到 23 之间的一个整数（包括 0 和 23），代表一天中的某一小时。
语法
time 参数是任意可以代表时间的表达式。如果 time 参数中包含 Null，则返回 Null。

下面的示例利用 Hour 函数得到当前时间的小时:

Dim MyTime, MyHour
MyTime = Now
MyHour = Hour(MyTime) ' MyHour 包含代表当前时间的数值。


Hour º¯Êý

Hour º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Day º¯Êý
Minute º¯Êý
Now º¯Êý
Second º¯Êý
Time º¯Êý


InputBox 函数

InputBox 函数 		语言参考
版本 1

请参阅

描述
在对话框中显示提示，等待用户输入文本或单击按钮，并返回文本框内容。
语法
InputBox(prompt[, title][, default][, xpos][, ypos][, helpfile, context])

InputBox 函数的语法有以下参数：

参数 | 描述
prompt | 字符串表达式，作为消息显示在对话框中。prompt 的最大长度大约是 1024 个字符，这取决于所使用的字符的宽度。如果 prompt 中包含多个行，则可在各行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符的组合 (Chr(13) & Chr(10)) 以分隔各行。
title | 显示在对话框标题栏中的字符串表达式。如果省略 title，则应用程序的名称将显示在标题栏中。
default | 显示在文本框中的字符串表达式，在没有其它输入时作为默认的响应值。如果省略 default，则文本框为空。
xpos | 数值表达式，用于指定对话框的左边缘与屏幕左边缘的水平距离（单位为缇）。如果省略 xpos，则对话框会在水平方向居中。
ypos | 数值表达式，用于指定对话框的上边缘与屏幕上边缘的垂直距离（单位为缇）。如果省略 ypos，则对话框显示在屏幕垂直方向距下边缘大约三分之一处。
helpfile | 字符串表达式，用于标识为对话框提供上下文相关帮助的帮助文件。如果已提供 helpfile，则必须提供 context。
context | 数值表达式，用于标识由帮助文件的作者指定给某个帮助主题的上下文编号。如果已提供 context，则必须提供 helpfile。

说明
如果同时提供了 helpfile 和 context，就会在对话框中自动添加“帮助”按钮。

如果用户单击确定或按下 ENTER，则 InputBox 函数返回文本框中的内容。如果用户单击取消，则函数返回一个零长度字符串 ("")。

下面例子利用 InputBox 函数显示一输入框并且把字符串赋值给输入变量:

Dim Input
Input = InputBox("输入名字")
MsgBox ("输入: " & Input)


InputBox º¯Êý

InputBox º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

MsgBox º¯Êý


InStr 函数

InStr 函数 		语言参考
版本 1

请参阅

描述
返回某字符串在另一字符串中第一次出现的位置。
语法
InStr([start, ]string1, string2[, compare])

InStr 函数的语法有以下参数：

参数 | 描述
start | 可选。数值表达式，用于设置每次搜索的开始位置。如果省略，将从第一个字符的位置开始搜索。如果 start 包含 Null，则会出现错误。如果已指定 compare，则必须要有 start 参数。
string1 | 必选。接受搜索的字符串表达式。
string2 | 必选。要搜索的字符串表达式。
compare | 可选。指示在计算子字符串时使用的比较类型的数值。有关数值，请参阅“设置”部分。如果省略，将执行二进制比较。

设置
compare 参数可以有以下值：

常数 | 值 | 描述
vbBinaryCompare | 0 | 执行二进制比较。
vbTextCompare | 1 | 执行文本比较。

返回值
InStr 函数返回以下值：

如果 | InStr 返回
string1 为零长度 | 0
string1 为 Null | Null
string2 为零长度 | start
string2 为 Null | Null
string2 没有找到 | 0
在 string1 中找到 string2 | 找到匹配字符串的位置
start > Len(string2) | 0

说明
下面的示例利用 InStr 搜索字符串:
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"     ' 要在其中搜索的字符串。
SearchChar = "P"                 ' 搜索 "P"。

MyPos = Instr(4, SearchString, SearchChar, 1)  '文本比较从第四个字符开始返回 6。
MyPos = Instr(1, SearchString, SearchChar, 0) '二进制比较从第1个字符开始返回 9。
MyPos = Instr(SearchString, SearchChar)    ' 返回 9。
                                            ' 缺省为二进制比较(最后一个参数省略)。
MyPos = Instr(1, SearchString, "W") ' 二进制比较从第1个字符开始返回 0 (没有找到 "W")。
注意 InStrB 函数使用包含在字符串中的字节数据，所以 InStrB 返回的不是一个字符串在另一个字符串中第一次出现的字符位置，而是字节位置。


Instr º¯Êý

Instr º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

InstrRev º¯Êý


InStrRev 函数

InStrRev 函数 		语言参考
版本 2

请参阅

描述
返回某字符串在另一个字符串中出现的从结尾计起的位置。
语法
InStrRev(string1, string2[, start[, compare]])

InStrRev 函数的语法有以下参数：

参数 | 描述
string1 | 必选。接受搜索的字符串表达式。
string2 | 必选。被搜索的字符串表达式。
start | 可选。数值表达式，用于设置每次搜索的开始位置。如果省略，则默认值为 -1，表示从最后一个字符的位置开始搜索。如果 start 包含 Null，则出现错误。
compare | 可选。在计算子字符串时，指示要使用的比较类型的数值。如果省略，将执行二进制比较。有关数值，请参阅“设置”部分。

设置
compare 参数可以有以下值：

常数 | Value | 描述
vbBinaryCompare | 0 | 执行二进制比较。
vbDatabaseCompare | 2 | 执行基于包含在数据库（在此数据库中执行比较）中的信息的比较。

返回值
InStrRev 返回以下值：

如果 | InStrRev 返回
string1 为零长度 | 0
string1 为 Null | Null
string2 为零长度 | start
string2 为 Null | Null
string2 没有找到 | 0
在 string1 中找到 string2 | 找到匹配字符串的位置
start > Len(string2) | 0

说明
下面的示例利用 InStrRev 函数搜索字符串:
Dim SearchString, SearchChar, MyPos
SearchString ="XXpXXpXXPXXP"            '要在其中搜索的字符串。
SearchChar = "P"                        ' 搜索 "P"。

MyPos = InstrRev(SearchString, SearchChar, 10, 0)

'二进制比较从第10个字符开始。返回 9。
MyPos = InstrRev(SearchString, SearchChar, -1, 1)

'文本比较从最后一个字符开始。返回 12。
MyPos = InstrRev(SearchString, SearchChar, 8) ' 缺省为二进制比较(最后一个参数省略)。返回 0。
注意 InStrRev 函数的语法与 InStr 函数的语法并不一样。


InstrRev º¯Êý

InstrRev º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Instr º¯Êý


Int、Fix 函数

Int、Fix 函数 		语言参考
版本 1

请参阅

描述
返回数字的整数部分。
语法
Int(number)

Fix(number)

number 参数可以是任意有效的数值表达式。如果 number 参数包含 Null，则返回 Null。

说明
Int 和 Fix 函数都删除 number 参数的小数部分并返回以整数表示的结果。

Int 和 Fix 函数的区别在于如果 number 参数为负数时，Int 函数返回小于或等于 number 的第一个负整数，而 Fix 函数返回大于或等于 number 参数的第一个负整数。例如，Int 将 -8.4 转换为 -9，而 Fix 函数将 -8.4 转换为 -8。

Fix(number) 等同于：

Sgn(number) * Int(Abs(number))
下面的示例说明 Int 和 Fix 函数如何返回数字的整数部分:
MyNumber = Int(99.8)    ' 返回 99。
MyNumber = Fix(99.2)    ' 返回 99。
MyNumber = Int(-99.8)   ' 返回 -100。
MyNumber = Fix(-99.8)   '返回-99。
MyNumber = Int(-99.2)   '返回 -100。
MyNumber = Fix(-99.2)   '返回 -99。


Int¡¢Fix º¯Êý

In¡¢Fix º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

CInt º¯Êý
Round º¯Êý


IsArray 函数

IsArray 函数 		语言参考
版本 1

请参阅

描述
返回 Boolean 值指明某变量是否为数组。
语法
IsArray(varname)

varname 参数可以是任意变量。

说明
如果变量是数组，IsArray 函数返回 True；否则，函数返回 False。当变量中包含有数组时，使用 IsArray 函数很有效。

下面的示例利用 IsArray 函数验证 MyVariable 是否为一数组:

Dim MyVariable
Dim MyArray(3)
MyArray(0) = "Sunday"
MyArray(1) = "Monday"
MyArray(2) = "Tuesday"
MyVariable = IsArray(MyArray) ' MyVariable 包含 "True"。


IsArray º¯Êý

IsArray º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

IsDate º¯Êý
IsEmpty º¯Êý
IsNull º¯Êý
IsNumeric º¯Êý
IsObject º¯Êý
VarType º¯Êý


IsDate 函数

IsDate 函数 		语言参考
版本 1

请参阅

描述
返回 Boolean 值指明某表达式是否可以转换为日期。
语法
IsDate(expression)

expression 参数可以是任意可被识别为日期和时间的日期表达式或字符串表达式。

说明
如果表达式是日期或可合法地转化为有效日期，则 IsDate 函数返回 True；否则函数返回 False。在 Microsoft Windows 操作系统中，有效的日期范围公元 100 年 1 月 1 日到公元 9999 年 12 月 31 日；合法的日期范围随操作系统不同而不同。

下面的示例利用 IsDate 函数决定表达式是否能转换为日期型:

Dim MyDate, YourDate, NoDate, MyCheck
MyDate = "October 19, 1962": YourDate = #10/19/62#: NoDate = "Hello"
MyCheck = IsDate(MyDate)            ' 返回 True。
MyCheck = IsDate(YourDate)          ' 返回 True。
MyCheck = IsDate(NoDate)            ' 返回 False。


IsDate º¯Êý

IsDate º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

CDate º¯Êý
IsArray º¯Êý
IsEmpty º¯Êý
IsNull º¯Êý
IsNumeric º¯Êý
IsObject º¯Êý
VarType º¯Êý


IsEmpty 函数

IsEmpty 函数 		语言参考
版本 1

请参阅

描述
返回 Boolean 值指明变量是否已初始化。
语法
IsEmpty(expression)

expression 参数可以是任意表达式。然而，由于 IsEmpty 用于判断一个变量是否已初始化，故 expression 参数经常是一个变量名。

说明
如果变量未初始化或显式地设置为 Empty，则函数 IsEmpty 返回 True；否则函数返回 False。如果 expression 包含一个以上的变量，总返回 False。

下面的示例利用 IsEmpty 函数决定变量是否能被初始化:

Dim MyVar, MyCheck
MyCheck = IsEmpty(MyVar)      ' 返回 True。

MyVar = Null                  ' 赋为 Null。
MyCheck = IsEmpty(MyVar)      ' 返回 False。

MyVar = Empty                 ' 赋为 Empty。
MyCheck = IsEmpty(MyVar)      ' 返回 True。


IsEmpty º¯Êý

IsEmpty º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

IsArray º¯Êý
IsDate º¯Êý
IsNull º¯Êý
IsNumeric º¯Êý
IsObject º¯Êý
VarType º¯Êý


IsNull 函数

IsNull 函数 		语言参考
版本 1

请参阅

描述
返回 Boolean 值，指明表达式是否不包含任何有效数据 (Null)。
语法
IsNull(expression)

expression 参数可以是任意表达式。

说明
如果 expression 为 Null，则 IsNull 返回 True，即表达式不包含有效数据，否则 IsNull 返回 False。如果 expression 由多个变量组成，则表达式的任何组成变量中的 Null 都会使整个表达式返回 True。

Null 值指出变量不包含有效数据。Null 与 Empty 不同，后者指出变量未经初始化。Null 与零长度字符串 ("") 也不同，零长度字符串往往指的是空串。

重点 使用 IsNull 函数可以判断表达式是否包含 Null 值。在某些情况下想使表达式取值为 True，例如 IfVar=Null 和 IfVar<>Null，但它们通常总是为 False。这是因为任何包含 Null 的表达式本身就为 Null，所以表达式的结果为 False。

下面的示例利用 IsNull 函数决定变量是否包含 Null :

Dim MyVar, MyCheck
MyCheck = IsNull(MyVar)      ' 返回 False。

MyVar = Null                 ' 赋为 Null。
MyCheck = IsNull(MyVar)      ' 返回 True。

MyVar = Empty                ' 赋为 Empty。
MyCheck = IsNull(MyVar)      ' 返回 False。


IsNull º¯Êý

IsNull º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

IsArray º¯Êý
IsDate º¯Êý
IsEmpty º¯Êý
IsNumeric º¯Êý
IsObject º¯Êý
VarType º¯Êý


IsNumeric 函数

IsNumeric 函数 		语言参考
版本 1

请参阅

描述
返回 Boolean 值指明表达式的值是否为数字。
语法
IsNumeric(expression)

expression 参数可以是任意表达式。

说明
如果整个 expression 被识别为数字，IsNumeric 函数返回 True；否则函数返回 False。 如果 expression 是日期表达式

，IsNumeric 函数返回 False。 下面的示例利用 IsNumeric 函数决定变量是否可以作为数值:

Dim MyVar, MyCheck
MyVar = 53                    '赋值。
MyCheck = IsNumeric(MyVar)    ' 返回 True。

MyVar = "459.95"              ' 赋值。
MyCheck = IsNumeric(MyVar)    ' 返回True。

MyVar = "45 Help"             ' 赋值。
MyCheck = IsNumeric(MyVar)    ' 返回 False。


IsNumeric º¯Êý

IsNumeric º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

IsArray º¯Êý
IsDate º¯Êý
IsEmpty º¯Êý
IsNull º¯Êý
IsObject º¯Êý
VarType º¯Êý


IsObject 函数

IsObject 函数 		语言参考
版本 1

请参阅

描述
返回 Boolean 值指明表达式是否引用了有效的 Automation 对象。
语法
IsObject(expression)

expression 参数可以是任意表达式。

说明
如果 expression 是 Object 子类型变量或用户自定义的对象，则 IsObject 返回 True；否则函数返回 False。

下面的示例利用 IsObject 函数决定标识符是否代表对象变量:

Dim MyInt, MyCheck, MyObject
Set MyObject = Me
MyCheck = IsObject(MyObject)  ' 返回 True。
MyCheck = IsObject(MyInt)     ' 返回 False。


IsObject º¯Êý

IsObject º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

IsArray º¯Êý
IsDate º¯Êý
IsEmpty º¯Êý
IsNull º¯Êý
IsNumeric º¯Êý
Set Óï¾ä
VarType º¯Êý


Join 函数

Join 函数 		语言参考
版本 2

请参阅

描述
返回一个字符串，此字符串由包含在数组中的许多子字符串联接创建。
语法
Join(list[，delimiter])

Join 函数的语法有以下参数：

参数 | 描述
list | 必选。包含要联接的子字符串一维数组。
delimiter | 可选。在返回字符串中用于分隔子字符串的字符。如果省略，将使用空字符 ("")。 如果 delimiter 是零长度字符串，则在同一列表中列出全部项，没有分界符。

说明
下面的示例利用 Join 函数联合 MyArray 的子字符串:
Dim MyString
Dim MyArray(4)
MyArray(0) = "Mr."
MyArray(1) = "John "
MyArray(2) = "Doe "
MyArray(3) = "III"
MyString = Join(MyArray) 'MyString 包含 "Mr. John Doe III"。


Join º¯Êý

Join º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Split º¯Êý


LBound 函数

LBound 函数 		语言参考
版本 1

请参阅

描述
返回指定数组维的最小可用下标。
语法
LBound(arrayname[, dimension])

LBound 函数的语法有以下参数：

参数 | 描述
arrayname | 数组变量名，遵循标准变量命名约定。
dimension | 指明要返回哪一维下界的整数。使用 1 表示第一维，2 表示第二维，以此类推。如果省略 dimension 参数，默认值为 1。

说明
LBound 函数与 UBound 函数共同使用以确定数组的大小。使用 UBound 函数可以找到数组某一维的上界。

任一维的下界都是 0。


LBound º¯Êý

LBound º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Dim Óï¾ä
ReDim Óï¾ä
UBound º¯Êý


LCase 函数

LCase 函数 		语言参考
版本 1

请参阅

描述
返回字符串的小写形式。
语法
LCase(string)

string 参数是任意有效的字符串表达式。如果 string 参数中包含 Null，则返回 Null。

说明
仅大写字母转换成小写字母；所有小写字母和非字母字符保持不变。

下面的示例利用 LCase 函数把大写字母转换为小写字母:
Dim MyString
Dim LCaseString
MyString = "VBSCript"
LCaseString = LCase(MyString) ' LCaseString 包含 "vbscript"。


LCase º¯Êý

LCase º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

UCase º¯Êý


Left 函数

Left 函数 		语言参考
版本 1

请参阅

描述
返回指定数目的从字符串的左边算起的字符。
语法
Left(string, length)

Left 函数的语法有以下参数：

参数 | 描述
string | 字符串表达式，其最左边的字符被返回。如果 string 参数中包含 Null，则返回 Null。
length | 数值表达式，指明要返回的字符数目。如果是 0，返回零长度字符串 ("")；如果大于或等于 string 参数中的字符总数，则返回整个字符串。

说明
可使用 Len 函数确定 string 参数中的字符数目。

下面的示例利用Left 函数返回MyString 的左边三个字母:

Dim MyString, LeftString
MyString = "VBSCript"
LeftString = Left(MyString, 3) 'LeftString 包含 "VBS"。
注意 LeftB 函数与包含在字符串中字节数据一起使用。 length 不是指定返回的字符串数，而是字节数。


Left º¯Êý

Left º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Len º¯Êý
Mid º¯Êý
Right º¯Êý


Len 函数

Len 函数 		语言参考
版本 1

请参阅

描述
返回字符串内字符的数目，或是存储一变量所需的字节数。
语法
Len(string | varname)

Len 函数语法有以下参数：

参数 | 描述
string | 任意有效的字符串表达式。如果 string 参数包含 Null，则返回 Null。
varname | 任意有效的变量名。如果 varname 参数包含 Null，则返回 Null。

说明
下面的示例利用 Len 函数返回字符串中的字符数目:
Dim MyString
MyString = Len("VBSCRIPT") 'MyString 包含 8。
注意 LenB 函数与包含在字符串中的字节数据一起使用。 LenB 不是返回字符串中的字符数，而是返回用于代表字符串的字节数。


Len º¯Êý

Len º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

InStr º¯Êý


LoadPicture 函数

LoadPicture 函数 		语言参考
版本 2

描述
返回图片对象。
语法
LoadPicture(picturename)

picturename 参数是字符串表达式，该表达式指明了要装入的图片文件的名称。

说明
可以由 LoadPicture 识别的图形格式有位图文件 (.bmp)、图标文件 (.ico)、行程编码文件 (.rle)、图元文件 (.wmf)、增强型图元文件 (.emf)、GIF (.gif) 文件和 JPEG (.jpg) 文件。


Log 函数

Log 函数 		语言参考
版本 1

请参阅

描述
返回数值的自然对数。
语法
Log(number)

number 参数是任意大于 0 的有效数值表达式。

说明
自然对数是以 e 为底的对数。常数 e 的值约为 2.718282。

用 n 的自然对数除 x 的自然对数，可以得到以 n 为底的 x 的对数。如下所示：

Logn(x) = Log(x) / Log(n)
以下示例为一个自定义的 Function 过程，该过程计算以 10 为底的对数：
 Log10(X) 函数
    Log10 = Log(X) / Log(10)
End Function


Log º¯Êý

Log º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

ÅÉÉúÊýÑ§º¯Êý
Exp º¯Êý


LTrim、RTrim 和 Trim 函数

LTrim、RTrim 和 Trim 函数 		语言参考
版本 1

请参阅

描述
返回不带前导空格 (LTrim)、后续空格 (RTrim) 或前导与后续空格 (Trim) 的字符串副本。
语法
LTrim(string)

RTrim(string)

Trim(string)

string 参数是任意有效的字符串表达式。如果 string 参数中包含 Null，则返回 Null。

注释
下面的示例利用 LTrim, RTrim, 和 Trim 函数分别用来除去字符串开始的空格、尾部空格、 开始和尾部空格:
Dim MyVar
MyVar = LTrim("  vbscript ")  'MyVar 包含 "vbscript "。
MyVar = RTrim("  vbscript ")  'MyVar 包含 "  vbscript"。
MyVar = Trim("  vbscript ")   'MyVar 包含"vbscript"。


LTrim¡¢RTrim ºÍ Trim º¯Êý

LTrim¡¢RTrim ºÍ Trim º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Left º¯Êý
Right º¯Êý


Mid 函数

Mid 函数 		语言参考
版本 1

请参阅

描述
从字符串中返回指定数目的字符。
语法
Mid(string, start[, length])

Mid 函数的语法有以下参数：

参数 | 描述
string | 字符串表达式，从中返回字符。如果 string 包含 Null，则返回 Null。
start | string 中被提取的字符部分的开始位置。如果 start 超过了 string 中字符的数目，Mid 将返回零长度字符串 ("")。
length | 要返回的字符数。如果省略或 length 超过文本的字符数（包括 start 处的字符），将返回字符串中从 start 到字符串结束的所有字符。

说明
要判断 string 中字符的数目，可使用 Len 函数。

下面的示例利用 Mid 函数返回字符串中从第四个字符开始的六个字符:

Dim MyVar
MyVar = Mid("VB脚本is fun!", 4, 6) 'MyVar 包含 "Script"。
注意 MidB 函数与包含在字符串中的字节数据一起使用。其参数不是指定字符数，而是字节数。


Mid º¯Êý

Mid º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Left º¯Êý
Len º¯Êý
LTrim¡¢RTrim ºÍ Trim º¯Êý
Right º¯Êý


Minute 函数

Minute 函数 		语言参考
版本 1

请参阅

描述
返回 0 到 59 之间的一个整数（包括 0 和59），代表一小时内的某一分钟。
语法
time 参数是任意可以代表时间的表达式。如果 time 参数包含 Null，则返回 Null。

备注
下面的示例利用 Minute 函数返回小时的分钟数:
Dim MyVar
MyVar = Minute(Now)


Minute º¯Êý

Minute º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Day º¯Êý
Hour º¯Êý
Now º¯Êý
Second º¯Êý
Time º¯Êý


Month 函数

Month 函数 		语言参考
版本 1

请参阅

描述
返回 1 到 12 之间的一个整数（包括 1 和 12），代表一年中的某月。
语法
date 参数是任意可以代表日期的表达式。如果 date 参数中包含 Null，则返回 Null。

备注
下面的示例利用 Month 函数返回当前月:
Dim MyVar
MyVar = Month(Now) ' MyVar 包含当前月对应的数字。


Month º¯Êý

Month º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Date º¯Êý
Day º¯Êý
Now º¯Êý
Weekday º¯Êý
Year º¯Êý


MonthName 函数

MonthName 函数 		语言参考
版本 2

请参阅

描述
返回表明指定月份的字符串。
语法
MonthName(month[, abbreviate])

MonthName 函数的语法有以下参数：

参数 | 描述
month | 必选。月份的数值定义。例如，一月是 1，二月是 2，以此类推。
abbreviate | 可选。Boolean 值，表明月份名称是否简写。如果省略，默认值为 False，即不简写月份名称。

备注
下面的示例利用MonthName 函数为日期表达式返回月份的缩写:
Dim MyVar
MyVar = MonthName(10, True) ' MyVar 包含 "Oct"。


MonthName º¯Êý

MonthName º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

WeekDayName º¯Êý


MsgBox 函数

MsgBox 函数 		语言参考
版本 1

请参阅

描述
在对话框中显示消息，等待用户单击按钮，并返回一个值指示用户单击的按钮。
语法
MsgBox(prompt[, buttons][, title][, helpfile, context])

MsgBox 函数的语法有以下参数：

参数 | 描述
prompt | 作为消息显示在对话框中的字符串表达式。prompt 的最大长度大约是 1024 个字符，这取决于所使用的字符的宽度。如果 prompt 中包含多个行，则可在各行之间用回车符 (Chr(13))、换行符 (Chr(10)) 或回车换行符的组合 (Chr(13) & Chr(10)) 分隔各行。
buttons | 数值表达式，是表示指定显示按钮的数目和类型、使用的图标样式，默认按钮的标识以及消息框样式的数值的总和。有关数值，请参阅“设置”部分。如果省略，则 buttons 的默认值为 0。
title | 显示在对话框标题栏中的字符串表达式。如果省略 title，则将应用程序的名称显示在标题栏中。
helpfile | 字符串表达式，用于标识为对话框提供上下文相关帮助的帮助文件。如果已提供 helpfile，则必须提供 context。在 16 位系统平台上不可用。
context | 数值表达式，用于标识由帮助文件的作者指定给某个帮助主题的上下文编号。如果已提供 context，则必须提供 helpfile。在 16 位系统平台上不可用。

设置
buttons 参数可以有以下值：

常数 | 值 | 描述
vbOKOnly | 0 | 只显示确定按钮。
vbOKCancel | 1 | 显示确定和取消按钮。
vbAbortRetryIgnore | 2 | 显示放弃、重试和忽略按钮。
vbYesNoCancel | 3 | 显示是、否和取消按钮。
vbYesNo | 4 | 显示是和否按钮。
vbRetryCancel | 5 | 显示重试和取消按钮。
vbCritical | 16 | 显示临界信息图标。
vbQuestion | 32 | 显示警告查询图标。
vbExclamation | 48 | 显示警告消息图标。
vbInformation | 64 | 显示信息消息图标。
vbDefaultButton1 | 0 | 第一个按钮为默认按钮。
vbDefaultButton2 | 256 | 第二个按钮为默认按钮。
vbDefaultButton3 | 512 | 第三个按钮为默认按钮。
vbDefaultButton4 | 768 | 第四个按钮为默认按钮。
vbApplicationModal | 0 | 应用程序模式：用户必须响应消息框才能继续在当前应用程序中工作。
vbSystemModal | 4096 | 系统模式：在用户响应消息框前，所有应用程序都被挂起。

第一组值 (0 - 5) 用于描述对话框中显示的按钮类型与数目；第二组值 (16, 32, 48, 64) 用于描述图标的样式；第三组值 (0, 256, 512) 用于确定默认按钮；而第四组值 (0, 4096) 则决定消息框的样式。在将这些数字相加以生成 buttons 参数值时，只能从每组值中取用一个数字。

返回值
MsgBox 函数有以下返回值：

常数 | 值 | 按钮
vbOK | 1 | 确定
vbCancel | 2 | 取消
vbAbort | 3 | 放弃
vbRetry | 4 | 重试
vbIgnore | 5 | 忽略
vbYes | 6 | 是
vbNo | 7 | 否

说明
如果同时提供了 helpfile 和 context，则用户可以按 F1 键以查看与上下文相对应的帮助主题。

如果对话框显示取消按钮，则按 ESC 键与单击取消的效果相同。如果对话框包含帮助按钮，则有为对话框提供的上下文相关帮助。但是在单击其他按钮之前，不会返回任何值。

下面的示例利用 MsgBox 函数来显示一个信息框并返回单击的按钮的值：

Dim MyVar
MyVar = MsgBox ("Hello World!", 65, "MsgBox 例子") ' MyVar 包含 either 1 or 2，
                                                      '依赖于被按下的按钮。


MsgBox º¯Êý

MsgBox º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

InputBox º¯Êý


Now 函数

Now 函数 		语言参考
版本 1

请参阅

描述
根据计算机系统设定的日期和时间返回当前的日期和时间值。
语法
Now
说明
下面的示例利用 Now 函数返回当前的日期和时间:
Dim MyVar
MyVar = Now ' MyVar 包含当前的日期和时间。


Now º¯Êý

Now º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Date º¯Êý
Day º¯Êý
Hour º¯Êý
Minute º¯Êý
Month º¯Êý
Second º¯Êý
Time º¯Êý
Weekday º¯Êý
Year º¯Êý


Oct 函数

Oct 函数 		语言参考
版本 1

请参阅

描述
返回表示数字八进制值的字符串。
语法
Oct(number)

number 参数是任意有效的表达式。

说明
如果 number 参数不是整数，则在进行运算前，将其四舍五入到最接近的整数。

如果 number 是 | Oct 返回
Null | Null。
Empty | 零 (0)。
任意其他数字 | 最大可到 11 位的八进制字符。

用户也可以通过直接在数前加上 &O 表示八进制数。例如，&O10 为十进制数 8 的八进制表示法。

下面的示例利用 Oct 函数返回数值的八进制数:

Dim MyOct
MyOct = Oct(4)     ' 返回 4。
MyOct = Oct(8)     ' 返回 10。
MyOct = Oct(459)   ' 返回 713。


Oct º¯Êý

Oct º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Hex º¯Êý


Replace 函数

Replace 函数 		语言参考
版本 2

请参阅

描述
返回字符串，其中指定数目的某子字符串被替换为另一个子字符串。
语法
Replace(expression, find, replacewith[, compare[, count[, start]]])

Replace 函数的语法有以下参数：

参数 | 描述
expression | 必选。 字符串表达式 包含要替代的子字符串。
find | 必选。被搜索的子字符串。
replacewith | 必选。用于替换的子字符串。
start | 可选。expression 中开始搜索子字符串的位置。如果省略，默认值为 1。在和count 关联时必须用
count | 可选。执行子字符串替换的数目。如果省略，默认值为 -1，表示进行所有可能的替换。在和 start 关联时必须用。
compare | 可选。指示在计算子字符串时使用的比较类型的数值。有关数值，请参阅“设置”部分。如果省略,缺省值为 0 ,这意味着必须进行二进制比较。

设置
compare 参数可以有以下值：

常数 | 值 | 描述
vbBinaryCompare | 0 | 执行二进制比较。
vbTextCompare | 1 | 执行文本比较。

返回值
Replace 返回以下值：

如果 | Replace 返回
expression 为零长度 | 零长度字符串 ("")。
expression 为 Null | 错误。
find 为零长度 | expression 的副本。
replacewith 为零长度 | expression 的副本，其中删除了所有由 find 参数指定的内容。
start > Len(expression) | 零长度字符串。
count 为 0 | expression 的副本。

说明
Replace 函数的返回值是经过替换（从由 start 指定的位置开始到 expression 字符串的结尾）后的字符串，而不是原始字符串从开始至结尾的副本。

下面的示例利用 Replace 函数返回字符串:

Dim MyString

MyString = Replace("XXpXXPXXp", "p", "Y") '二进制比较从字符串左端开始。返回 "XXYXXPXXY"。
MyString = Replace("XXpXXPXXp", "p", "Y", '文本比较从第三个字符开始。返回 "YXXYXXY"。3，, -1, 1)


Replace º¯Êý

Replace º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Filter º¯Êý


RGB 函数

RGB 函数 		语言参考
版本 2

描述
返回代表 RGB 颜色值的整数。
语法
RGB(red, green, blue)

RGB 函数的语法有以下参数：

部分 | 描述
red | 必选。0 到 255 间的整数，代表颜色中的红色成分。
green | 必选。0 到 255 间的整数，代表颜色中的绿色成分。
blue | 必选。0 到 255 间的整数，代表颜色中的蓝色成分。

说明
接受颜色说明的应用程序方法和属性，要求该说明以整数代表 RGB 颜色值。RGB 颜色值指定了红色、绿色、蓝色的相对强度，三色组合形成显示的特定颜色。

低字节值表示红色，中字节值表示绿色，高字节值表示蓝色。

对于要求反转字节顺序的应用程序，下面函数在反转字节顺序下提供相同信息：

Function RevRGB(red, green, blue)
    RevRGB= CLng(blue + (green * 256) + (red * 65536))
End Function

RGB 函数中任一超过 255 的参数都假定为 255。


Right 函数

Right 函数 		语言参考
版本 1

请参阅

描述
从字符串右边返回指定数目的字符。
语法
Right(string, length)

Right 函数的语法有以下参数：

参数 | 描述
string | 字符串表达式，其最右边的字符被返回。如果 string 参数中包含 Null，则返回 Null。
length | 数值表达式，指明要返回的字符数目。如果为 0，返回零长度字符串；如果此数大于或等于 string 参数中的所有字符数目，则返回整个字符串。

说明
要确定 string 参数中的字符数目，使用 Len 函数。

下面的示例利用 Right 函数从字符串右边返回指定数目的字符:

Dim AnyString, MyStr
AnyString = "Hello World"      '定义字符串。
MyStr = Right(AnyString, 1)    '返回 "d"。
MyStr = Right(AnyString, 6)    ' 返回 " World"。
MyStr = Right(AnyString, 20)   ' 返回 "Hello World"。
注意 RightB 函数用于字符串中的字节数据，length 参数指定返回的是字节数目，而不是字符数目。


Right º¯Êý

Right º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Left º¯Êý
Len º¯Êý
Mid º¯Êý


Rnd 函数

Rnd 函数 		语言参考
版本 1

请参阅

描述
返回一个随机数。
语法
Rnd[(number)]

number 参数可以是任意有效的数值表达式。

说明
Rnd 函数返回一个小于 1 但大于或等于 0 的值。 number 的值决定了 Rnd 生成随机数的方式：

如果 number 为 | Rnd 生成
小于零 | 每次都相同的值，使用 number 作为种子。
大于零 | 序列中的下一个随机数。
等于零 | 最近生成的数。
省略 | 序列中的下一个随机数。

因每一次连续调用 Rnd 函数时都用序列中的前一个数作为下一个数的种子，所以对于任何最初给定的种子都会生成相同的数列。

在调用 Rnd 之前，先使用无参数的 Randomize 语句初始化随机数生成器，该生成器具有基于系统计时器的种子。

要产生指定范围的随机整数，请使用以下公式：

Int((upperbound - lowerbound + 1) * Rnd + lowerbound)
这里， upperbound 是此范围的上界，而 lowerbound 是此范围内的下界。

注意 要重复随机数的序列，请在使用数值参数调用 Randomize 之前，立即用负值参数调用 Rnd。使用同样 number 值的 Randomize 不能重复先前的随机数序列。


Rnd º¯Êý

Rnd º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Randomize Óï¾ä


Round 函数

Round 函数 		语言参考
版本 2

请参阅

描述
返回按指定位数进行四舍五入的数值。
语法
Round(expression[, numdecimalplaces])

Round 函数的语法有以下参数：

参数 | 描述
expression | 必选。 数值表达式 被四舍五入。
numdecimalplaces | 可选。数字表明小数点右边有多少位进行四舍五入。如果省略，则 Round 函数返回整数。

下面的示例利用 Round 函数将数值四舍五入到两位小数:
Dim MyVar, pi
pi = 3.14159
MyVar = Round(pi, 2) 'MyVar contains 3.14。


Round º¯Êý

Round º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Int¡¢Fix º¯Êý


ScriptEngine 函数

ScriptEngine 函数 		语言参考
版本 2

请参阅

描述
返回一个代表当前使用的脚本程序语言的字符串。
语法
ScriptEngine
返回值
ScriptEngine 函数可返回下列字符串：

字符串 | 描述
VBScript | 表明当前使用的编写脚本引擎是 Microsoft(R) Visual Basic(R) Scripting Edition。
JScript | 表明当前使用的编写脚本引擎是 Microsoft JScript(R)。
VBA | 表明当前使用的编写脚本引擎是 Microsoft Visual Basic for Applications。

说明
下面的示例利用 ScriptEngine 函数返回描述所用书写语言的字符串:
Function GetScriptEngineInfo
  Dim s
  s = ""   '用必要的信息形成字符串。
  s = ScriptEngine & " Version "
  s = s & ScriptEngineMajorVersion & "."
  s = s & ScriptEngineMinorVersion & "."
  s = s & ScriptEngineBuildVersion
  GetScriptEngineInfo =  s  '返回结果。
End Function


ScriptEngineBuildVersion 函数 		语言参考
版本 2

请参阅

描述
返回使用的编写脚本引擎的编译版本号。

语法
ScriptEngineBuildVersion

说明
返回值直接对应于所使用的 Scripting 程序语言的 DLL 文件中包含的版本信息。

下面的示例利用 ScriptEngineBuildVersion 函数返回创建的编写脚本引擎版本号:

 Function GetScriptEngineInfo
 Dim s
 s = ""   '用必要的信息形成字符串。
 s = ScriptEngine & " Version "
 s = s & ScriptEngineMajorVersion & "."
 s = s & ScriptEngineMinorVersion & "."
 s = s & ScriptEngineBuildVersion
 GetScriptEngineInfo = s  '返回结果。
End Function


ScriptEngineBuildVersion º¯Êý

ScriptEngineBuildVersion º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

ScriptEngine º¯Êý
ScriptEngineMajorVersion º¯Êý
ScriptEngineMinorVersion º¯Êý


ScriptEngine º¯Êý

ScriptEngine º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

ScriptEngineBuildVersion º¯Êý
ScriptEngineMajorVersion º¯Êý
ScriptEngineMinorVersion º¯Êý


ScriptEngineMajorVersion 函数

ScriptEngineMajorVersion 函数 		语言参考
版本 2

请参阅

描述
返回使用的编写脚本引擎的主版本号。
语法
ScriptEngineMajorVersion
说明
返回值直接对应于所使用的脚本程序语言中 DLL 文件包含的版本信息。

下面的示例利用 ScriptEngineMajorVersion 函数返回编写脚本引擎的版本号:

 Function GetScriptEngineInfo
  Dim s
  s = ""   '用必要的信息形成字符串。
  s = ScriptEngine & " Version "
  s = s & ScriptEngineMajorVersion & "."
  s = s & ScriptEngineMinorVersion & "."
  s = s & ScriptEngineBuildVersion
  GetScriptEngineInfo = s  '返回结果。
End Function


ScriptEngineMajorVersion º¯Êý

ScriptEngineMajorVersion º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

ScriptEngine º¯Êý
ScriptEngineBuildVersion º¯Êý
ScriptEngineMinorVersion º¯Êý


ScriptEngineMinorVersion 函数

ScriptEngineMinorVersion 函数 		语言参考
版本 2

请参阅

描述
返回使用的编写引擎引擎的次版本号。
语法
ScriptEngineMinorVersion
说明
返回值直接对应于所使用的脚本程序语言中 DLL 文件包含的版本信息。

下面的示例利用 ScriptEngineMinorVersion 函数返回编写引擎的副版本号:

Function GetScriptEngineInfo
  Dim s
  s = ""   '用必要的信息形成字符串。
  s = ScriptEngine & " Version "
  s = s & ScriptEngineMajorVersion & "."
  s = s & ScriptEngineMinorVersion & "."
  s = s & ScriptEngineBuildVersion
  GetScriptEngineInfo = s  '返回结果。
End Function


ScriptEngineMinorVersion º¯Êý

ScriptEngineMinorVersion º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

ScriptEngine º¯Êý
ScriptEngineBuildVersion º¯Êý
ScriptEngineMajorVersion º¯Êý


Second 函数

Second 函数 		语言参考
版本 1

请参阅

描述
返回 0 到 59 之间的一个整数（包括 1 和 59），代表一分钟内的某一秒。
语法
Second(time)

time 参数是任意可以代表时间的表达式。如果 time 参数中包含 Null，则返回 Null。

说明
下面的示例利用 Second 函数返回当前秒:
Dim MySec
MySec = Second(Now) 'MySec 包含代表当前秒的数字。


Second º¯Êý

Second º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Day º¯Êý
Hour º¯Êý
Minute º¯Êý
Now º¯Êý
Time º¯Êý


Sgn 函数

Sgn 函数 		语言参考
版本 1

请参阅

描述
返回表示数字符号的整数。
语法
Sgn(number)

number 参数可以是任意有效的数值表达式。

返回值
Sgn 函数有如下返回值：

如果 number 为 | Sgn 返回
大于零 | 1
等于零 | 0
小于零 | -1

说明
number 参数的符号决定 Sgn 函数的返回值。

下面的示例利用 Sgn 函数决定数值的符号:

Dim MyVar1, MyVar2, MyVar3, MySign
MyVar1 = 12: MyVar2 = -2.4: MyVar3 = 0
MySign = Sgn(MyVar1)    ' 返回 1。
MySign = Sgn(MyVar2)    ' 返回 -1。
MySign = Sgn(MyVar3)    ' 返回 0。


Sgn º¯Êý

Sgn º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Abs º¯Êý


Sin 函数

Sin 函数 		语言参考
版本 1

请参阅

描述
返回某个角的正弦值。
语法
Sin(number)

number 参数可以是任何将某个角表示为弧度的有效数值表达式。

说明
Sin 函数取某个角并返回直角三角形两边的比值。此比值是直角三角形中该角的对边长度与斜边长度之比。结果的范围在 -1 到 1 之间。

将角度乘以 pi/180 即可转换为弧度，将弧度乘以 180/pi 即可转换为角度。

下面例子利用 Sin 返回角度的正弦:

Dim MyAngle, MyCosecant
MyAngle = 1.3                   ' 用弧度定义角度。
MyCosecant = 1 / Sin(MyAngle)   '计算余割。


Sin º¯Êý

Sin º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Atn º¯Êý
Cos º¯Êý
ÅÉÉúÊýÑ§º¯Êý
Tan º¯Êý


Space 函数

Space 函数 		语言参考
版本 1

请参阅

描述
返回由指定数目的空格组成的字符串。
语法
Space(number)

number 参数为字符串中用户所需的空格数。

说明
下面的示例利用 Space 函数返回由指定数目空格组成的字符串:
Dim MyString
MyString = Space(10)                     ' 返回具有 10 个空格的字符串。
MyString = "Hello" & Space(10) & "World" ' 在两个字符串之间插入 10 个空格。


Space º¯Êý

Space º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

String º¯Êý


Split 函数

Split 函数 		语言参考
版本 2

请参阅

描述
返回基于 0 的一维数组，其中包含指定数目的子字符串。
语法
Split(expression[, delimiter[, count[, start]]])

Split 函数的语法有以下参数：

参数 | 描述
expression | 必选。字符串表达式，包含子字符串和分隔符。如果 expression 为零长度字符串，Split 返回空数组，即不包含元素和数据的数组。
delimiter | 可选。用于标识子字符串界限的字符。如果省略，使用空格 ("") 作为分隔符。如果 delimiter 为零长度字符串，则返回包含整个 expression 字符串的单元素数组。
count | 可选。被返回的子字符串数目，-1 指示返回所有子字符串。
compare | 可选。指示在计算子字符串时使用的比较类型的数值。有关数值，请参阅“设置”部分。

设置
compare 参数可以有以下值：

常数 | 值 | 描述
vbBinaryCompare | 0 | 执行二进制比较。
vbTextCompare | 1 | 执行文本比较。

说明
下面的示例利用 Split 函数从字符串中返回数组。函数对分界符进行文本比较，返回所有的子字符串。
Dim MyString, MyArray
MyString = Split("VBScriptXisXfun!", "x", -1, 1)
' MyString(0) 包含"VBScript"。
' MyString(1) 包含"is"。
' MyString(2) 包含 "fun!"。


Split º¯Êý

Split º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Join º¯Êý


Sqr 函数

Sqr 函数 		语言参考
版本 1

描述
返回数值的平方根。
语法
Sqr(number)

number 参数可以是任意有效的大于或等于零的数值表达式。

说明
下面的示例利用 Sqr 函数计算数值的平方根:
Dim MySqr
MySqr = Sqr(4)     ' 返回 2。
MySqr = Sqr(23)    ' 返回4.79583152331272。
MySqr = Sqr(0)     ' 返回0。
MySqr = Sqr(-4)    ' 产生实时错误。


StrComp 函数

StrComp 函数 		语言参考
版本 1

描述
返回一个表明字符串比较结果的值。
语法
StrComp(string1, string2[, compare])

StrComp 函数的语法有以下参数：

参数 | 描述
string1 | 必选。任意有效的字符串表达式。
string2 | 必选。任意有效的字符串表达式。
compare | 可选。指示在计算字符串时使用的比较类型的数值。如果省略，则执行二进制比较。有关数值，请参阅“设置”部分。

设置
compare 参数可以有以下值：

常数 | 值 | 描述
vbBinaryCompare | 0 | 执行二进制比较。
vbTextCompare | 1 | 执行文本比较。

返回值
StrComp 函数有以下返回值：

如果 | StrComp 返回
string1 小于 string2 | -1
string1 等于 string2 | 0
string1 大于 string2 | 1
string1 或 string2 为 Null | Null

说明
下面的示例利用 StrComp 函数返回字符串比较的结果。如果第三个参数为 1 执行文本比较；如果第三个参数为 0 或者省略执行二进制比较。
Dim MyStr1, MyStr2, MyComp
MyStr1 = "ABCD": MyStr2 = "abcd"       '定义变量。
MyComp = StrComp(MyStr1, MyStr2, 1)    ' 返回 0。
MyComp = StrComp(MyStr1, MyStr2, 0)    ' 返回 -1。
MyComp = StrComp(MyStr2, MyStr1)       ' 返回 1。


String 函数

String 函数 		语言参考
版本 1

请参阅

描述
返回具有指定长度的、重复字符组成的字符串。
语法
String(number, character)

String 函数的语法有以下参数：

参数 | 描述
number | 返回字符串的长度。如果 number 参数包含 Null，则返回 Null。
character | 指定字符或字符串表达式的字符代码，其中字符串表达式的第一个字符用于组成返回的字符串。如果 character 参数包含 Null，则返回 Null。

说明
如果指定的 character 值大于 255，则 String 使用下列公式将该数转换成有效的字符代码：
character Mod 256
下面的示例利用 String 函数返回指定长度的由重复字符组成的字符串:
Dim MyString
MyString = String(5, "*")       ' 返回"*****"。
MyString = String(5, 42)        ' 返回"*****"。
MyString = String(10, "ABC")    ' 返回"AAAAAAAAAA"。


String º¯Êý

String º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Space º¯Êý


StrReverse 函数

StrReverse 函数 		语言参考
版本 2

描述
返回字符串，此字符串与指定字符串顺序相反。
语法
StrReverse(string1)

string1 参数是要进行字符反向的字符串。如果 string1 是零长度字符串 ("")，则返回零长度字符串。如果 string1 为 Null，则会出现错误。

说明
下面的示例利用 StrReverse 函数返回按相反顺序排列的字符串:
Dim MyStr
MyStr = StrReverse("VBScript") 'MyStr 包含 "tpircSBV"。


Tan 函数

Tan 函数 		语言参考
版本 2

请参阅

描述
返回某个角的正切值。
语法
Tan(number)

number 参数可以是任何将某个角表示为弧度的有效数值表达式。

说明
Tan 取某个角并返回直角三角形两个直角边的比值。此比值是直角三角形中该角的对边长度与邻边长度之比。 将角度乘以 pi/180 即可转换为弧度，将弧度乘以 180/pi 即可转换为角度。

下面的示例利用 Tan 函数返回角度的正切:

Dim MyAngle, MyCotangent
MyAngle = 1.3                     ' 用弧度定义角度。
MyCotangent = 1 / Tan(MyAngle)    ' 计算余切。


Tan º¯Êý

Tan º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Atn º¯Êý
Cos º¯Êý
ÅÉÉúÊýÑ§º¯Êý
Sin º¯Êý


Time 函数

Time 函数 		语言参考
版本 1

请参阅

描述
返回 Date 子类型 Variant，指示当前系统时间。
语法
Time
说明
下面的示例利用 Time 函数返回当前系统时间:
Dim MyTime
MyTime = Time    ' 返回当前系统时间。


Time º¯Êý

Time º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Date º¯Êý


Timer 函数

Timer 函数 		语言参考
版本 5

请参阅

描述
返回午夜 12 时以后已经过去的秒数。
语法
Timer

说明
下面的例子使用 Timer 函数来确定 For...Next 循环 N 次所需的时间：
Function TimeIt(N)
  Dim StartTime, EndTime
  StartTime = Timer
  For I = 1 To N
  Next
  EndTime = Timer
  TimeIt = EndTime - StartTime
End Function


Timer º¯Êý

Timer º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Randomize Óï¾ä


TimeSerial 函数

TimeSerial 函数 		语言参考
版本 1

请参阅

描述
返回一个 Date 子类型的 Variant，含有指定时、分、秒的时间。
语法
TimeSerial(hour,minute, second)

TimeSerial 函数的语法有以下参数：

部分 | 描述
hour | 其值为从 0 (12:00 A.M.) 到 23 (11:00 P.M.) 的数值或数值表达式。
minute | 任意数值表达式。
second | 任意数值表达式。

说明
要指定一时刻，如 11:59:59，TimeSerial 的参数取值应在可接受的范围内；也就是说，小时应介于 0-23 之间，分和秒应介于 0-59 之间。但是，可以使用数值表达式为每个参数指定相对时间，这一表达式代表某时刻之前或之后的时、分或秒数。

下面的示例使用绝对时间数的表达式。 TimeSerial 函数返回中午前 6（12-6）小时前的 15分钟 （-15）， 或 5:45:00 A.M.

Dim MyTime1
MyTime1 = TimeSerial(12 - 6, -15, 0) ' 返回 5:45:00 AM.
当任何一个参数的取值超出可接受的范围时，它会正确地进位到下一个较大的时间单位中。例如，如果指定了 75 分钟，则这个时间被解释成一小时十五分钟。但是，如果任何一个参数值超出 -32768 到 32767 的范围，就会导致错误。如果使用三个参数直接指定的时间或通过表达式计算出的时间超出可接受的日期范围，也会导致错误。


TimeSerial º¯Êý

TimeSerial º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

DateSerial º¯Êý
DateValue º¯Êý
Hour º¯Êý
Minute º¯Êý
Now º¯Êý
Second º¯Êý
TimeValue º¯Êý


TimeValue 函数

TimeValue 函数 		语言参考
版本 1

请参阅

描述
返回包含时间的 Date 子类型的 Variant。
语法
TimeValue(time)

time 参数通常是代表从 0:00:00 (12:00:00 A.M.) 到 23:59:59 (11:59:59 P.M.) 的字符串表达式（包括 0:00:00 和 23:59:59）。不过，time 也可以是代表该范围内任何时间的表达式。如果 time 参数包含 Null，则返回 Null。

说明
可以采用 12 或 24 小时时钟格式输入时间。例如 "2:24PM" 和 "14:24" 都是有效的 time 参数。 如果 time 参数包含日期信息， TimeValue 函数并不返回日期信息。然而，如果 time 参数包含无效的日期信息，则会出现错误。

下面的示例利用 TimeValue 函数将字符串转化为时间。也可以用 日期文字 直接赋时间给 Variant 类型的变量(例如， MyTime = #4:35:17 PM#).

Dim MyTime
MyTime = TimeValue("4:35:17 PM")    ' MyTime 包含 "4:35:17 PM"。


TimeValue º¯Êý

TimeValue º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

DateSerial º¯Êý
DateValue º¯Êý
Hour º¯Êý
Minute º¯Êý
Now º¯Êý
Second º¯Êý
TimeSerial º¯Êý


TypeName 函数

TypeName 函数 		语言参考
版本 2

请参阅

描述
返回一个字符串，提供有关变量的 Variant 子类型信息。
语法
TypeName(varname)

必选的 varname 参数，可以是任何变量。

返回值
TypeName 函数返回值如下：

值 | 描述
Byte | 字节值
Integer | 整型值
Long | 长整型值
Single | 单精度浮点值
Double | 双精度浮点值
Currency | 货币值
Decimal | 十进制值
Date | 日期或时间值
String | 字符串值
Boolean | Boolean 值；True 或 False
Empty | 未初始化
Null | 无有效数据
<object type> | 实际对象类型名
Object | 一般对象
Unknown | 未知对象类型
Nothing | 还未引用对象实例的对象变量
Error | 错误

说明
下面的示例利用 TypeName 函数返回变量信息:
Dim ArrayVar(4), MyType
NullVar = Null    ' 赋 Null 值。

MyType = TypeName("VBScript")   ' 返回 "String"。
MyType = TypeName(4)            ' 返回 "Integer"。
MyType = TypeName(37.50)        ' 返回 "Double"。
MyType = TypeName(NullVar)      ' 返回 "Null"。
MyType = TypeName(ArrayVar)     ' 返回 "Variant()"。


TypeName º¯Êý

TypeName º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

IsArray º¯Êý
IsDate º¯Êý
IsEmpty º¯Êý
IsNull º¯Êý
IsNumeric º¯Êý
IsObject º¯Êý
VarType º¯Êý


UBound 函数

UBound 函数 		语言参考
版本 1

请参阅

描述
返回指定数组维数的最大可用下标。
语法
UBound(arrayname[, dimension])

UBound 函数的语法有以下参数：

参数 | 描述
arrayname | 必选。数组变量名，遵循标准变量命名约定。
dimension | 可选。指定返回哪一维上界的整数。1 表示第一维，2 表示第二维，以此类推。如果省略 dimension 参数，则默认值为 1。

说明
UBound 函数与 LBound 函数一起使用，用于确定数组的大小。使用 LBound 函数可以确定数组某一维的下界。

所有维的下界均为 0。对于有这样维数的数组，UBound 函数返回以下结果：

Dim A(100,3,4)
语句 | 返回值
UBound(A, 1) | 100
UBound(A, 2) | 3
UBound(A, 3) | 4


UBound º¯Êý

UBound º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Dim Óï¾ä
LBound º¯Êý
ReDim Óï¾ä


UCase 函数

UCase 函数 		语言参考
版本 1

请参阅

描述
返回字符串的大写形式。
语法
UCase(string)

string 参数是任意有效的字符串表达式。如果 string 参数中包含 Null，则返回 Null。

说明
只有小写字母被转换成大写字母；所有大写字母和非字母字符均保持不变。

下面的示例利用 UCase 函数返回字符串的大写形式:

Dim MyWord
MyWord = UCase("Hello World")    ' 返回"HELLO WORLD"。


UCase º¯Êý

UCase º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

LCase º¯Êý


VarType 函数

VarType 函数 		语言参考
版本 1

请参阅

描述
返回指示变量子类型的值。
语法
VarType(varname)

varname 参数可以是任何变量。

返回值
VarType 函数返回下列值：

常数 | 值 | 描述
vbEmpty | 0 | Empty（未初始化）
vbNull | 1 | Null（无有效数据）
vbInteger | 2 | 整数
vbLong | 3 | 长整数
vbSingle | 4 | 单精度浮点数
vbDouble | 5 | 双精度浮点数
vbCurrency | 6 | 货币
vbDate | 7 | 日期
vbString | 8 | 字符串
vbObject | 9 | Automation 对象
vbError | 10 | 错误
vbBoolean | 11 | Boolean
vbVariant | 12 | Variant（只和变量数组一起使用）
vbDataObject | 13 | 数据访问对象
vbByte | 17 | 字节
vbArray | 8192 | 数组

注意 这些常数是由 VBScript 指定的。所以，这些名称可在代码中随处使用，以代替实际值。

说明
VarType 函数从不通过自己返回 Array 的值。它总是要添加一些其他值来指示一个具体类型的数组。当 Variant 的值被添加到 Array 的值中以表明 VarType 函数的参数是一个数组时，它才被返回。例如，对一个整数数组的返回值是 2 + 8192 的计算结果，或 8194。如果一个对象有默认属性，则 VarType(object) 返回对象默认属性的类型。

下面函数利用 VarType 函数决定变量的子类型.

Dim MyCheck
MyCheck = VarType(300)           ' 返回 2。
MyCheck = VarType(#10/19/62#)    ' 返回 7。
MyCheck = VarType("VBScript")    ' 返回 8。


VarType º¯Êý

VarType º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

IsArray º¯Êý
IsDate º¯Êý
IsEmpty º¯Êý
IsNull º¯Êý
IsNumeric º¯Êý
IsObject º¯Êý
TypeName º¯Êý


Weekday 函数

Weekday 函数 		语言参考
版本 1

请参阅

描述
返回代表一星期中某天的整数。
语法
Weekday(date, [firstdayofweek])

Weekday 函数的语法有以下参数：

参数 | 描述
date | 可以代表日期的任意表达式。如果 date 参数中包含 Null，则返回 Null。
firstdayofweek | 指定星期中第一天的常数。如果省略，默认使用 vbSunday。

设置
firstdayofweek 参数有如下设置：

常数 | 值 | 描述
vbUseSystem | 0 | 使用区域语言支持 (NLS) API 设置。
vbSunday | 1 | 星期日
vbMonday | 2 | 星期一
vbTuesday | 3 | 星期二
vbWednesday | 4 | 星期三
vbThursday | 5 | 星期四
vbFriday | 6 | 星期五
vbSaturday | 7 | 星期六

返回值
Weekday 函数返回如下值：

常数 | 值 | 描述
vbSunday | 1 | 星期日
vbMonday | 2 | 星期一
vbTuesday | 3 | 星期二
vbWednesday | 4 | 星期三
vbThursday | 5 | 星期四
vbFriday | 6 | 星期五
vbSaturday | 7 | 星期六

说明
下面例子利用 Weekday 函数得到指定日期为星期几:
Dim MyDate, MyWeekDay
MyDate = #October 19, 1962#    ' 分派日期。
MyWeekDay = Weekday(MyDate)    ' 由于 MyWeekDay 包含 6
                               ' MyDate 代表星期五。


Weekday º¯Êý

Weekday º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Date º¯Êý
Day º¯Êý
Month º¯Êý
Now º¯Êý
Year º¯Êý


WeekDayName 函数

WeekdayName 函数 		语言参考
版本 2

请参阅

描述
返回一个字符串，表示星期中指定的某一天。
语法
WeekdayName(weekday, abbreviate, firstdayofweek)

WeekdayName 函数的语法有以下参数：

参数 | 描述
weekday | 必选。星期中某天的数值定义。各天的数值定义取决于 firstdayofweek 参数设置。
abbreviate | 可选。Boolean 值，指明是否缩写表示星期各天的名称。如果省略， 默认值为 False，即不缩写星期各天的名称。
firstdayofweek | 可选。指明星期第一天的数值。关于数值，请参阅“设置”部分。

设置
firstdayofweek 参数有以下值：

常数 | 值 | 描述
vbUseSystem | 0 | 使用区域语言支持 (NLS) API 设置。
vbSunday | 1 | 星期日（默认）
vbMonday | 2 | 星期一
vbTuesday | 3 | 星期二
vbWednesday | 4 | 星期三
vbThursday | 5 | 星期四
vbFriday | 6 | 星期五
vbSaturday | 7 | 星期六

说明
下面例子利用 WeekDayName 函数返回指定的某一天:
Dim MyDate
MyDate = WeekDayName(6, True)  'MyDate 包含 Fri。


WeekDayName º¯Êý

WeekDayName º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

MonthName º¯Êý


Year 函数

Year 函数 		语言参考
版本 1

请参阅

描述
返回一个代表某年的整数。
语法
Year(date)

date 参数是任意可以代表日期的参数。如果 date 参数中包含 Null，则返回 Null。

说明
下面例子利用 Year 函数得到指定日期的年份:
Dim MyDate, MyYear
MyDate = #October 19, 1962#   '分派一日期。
MyYear = Year(MyDate)         ' MyYear 包含 1962。


Year º¯Êý

Year º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Date º¯Êý
Day º¯Êý
Month º¯Êý
Now º¯Êý
Weekday º¯Êý


比较运算符

比较运算符 		语言参考
版本 1

请参阅

描述
用于比较表达式。
语法
result = expression1 comparisonoperator expression2

result = object1 Is object2

比较运算符的语法有以下部分：

部分 | 描述
result | 任意数值变量。
expression | 任意表达式。
comparisonoperator | 任意比较运算符。
object | 任意对象名称。

说明
Is 运算符有特定的比较功能，它们不同于下列表格中的运算符。下列表格中有一系列比较运算符以及判断 result 是 True、False 或 Null 的条件：

Operator 运算符 描述 如果 ... 则为 True 如果 ... 则为 False
< 小于 expression1 < expression2 expression1 >= expression2 expression1 或 expression2 = Null
<= 小于或等于 expression1 <= expression2 expression1 > expression2 expression1 或 expression2 = Null
> 大于 expression1 > expression2 expression1 <= expression2 expression1 或 expression2 = Null
>= 大于或等于 expression1 >= expression2 expression1 < expression2 expression1 或 expression2 = Null
= 等于 expression1 = expression2 expression1 <> expression2 expression1 或 expression2 = Null
<> 不等于 expression1 <> expression2 expression1 = expression2 expression1 或 expression2 = Null

在比较两个表达式时，可能难以确定要将表达式作为数字还是作为字符串进行比较。

下列表格说明如何比较表达式，或指出通过比较得到的结果，这些取决于下述子类型：

如果 | 则
两个表达式都是数值 | 执行数值比较。
两个表达式都是字符串 | 执行字符串比较。
一个表达式是数值而另一个是字符串 | 数值表达式小于字符串表达式。
一个表达式是 Empty 而另一个是数值 | 执行数值比较，使用 0 作为 Empty 表达式。
一个表达式是 Empty 而另一个是字符串 | 执行字符串比较，使用零长度字符串 ("") 作为 Empty 表达式。
两个表达式都是 Empty | 表达式相等。


±È½ÏÔËËã·û

±È½ÏÔËËã·û
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

= Operator
Is ÔËËã·û
ÔËËã·ûÓÅÏÈ¼¶
ÔËËã·û¸ÅÊö


派生数学函数

派生数学函数 		语言参考
版本 1

请参阅

描述
下列是由固有数学函数派生的非固有数学函数：

函数 | 派生的等效公式
Secant（正割） | Sec(X) = 1 / Cos(X)
Cosecant（余割） | Cosec(X) = 1 / Sin(X)
Cotangent（余切） | Cotan(X) = 1 / Tan(X)
Inverse Sine（反正弦） | Arcsin(X) = Atn(X / Sqr(-X * X + 1))
Inverse Cosine（反余弦） | Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1)
Inverse Secant（反正割） | Arcsec(X) = Atn(X / Sqr(X * X - 1)) + Sgn((X) -1) * (2 * Atn(1))
Inverse Cosecant（反余割） | Arccosec(X) = Atn(X / Sqr(X * X - 1)) + (Sgn(X) - 1) * (2 * Atn(1))
Inverse Cotangent（反余切） | Arccotan(X) = Atn(X) + 2 * Atn(1)
Hyperbolic Sine（双曲正弦） | HSin(X) = (Exp(X) - Exp(-X)) / 2
Hyperbolic Cosine（双曲余弦） | HCos(X) = (Exp(X) + Exp(-X)) / 2
Hyperbolic Tangent（双曲正切） | HTan(X) = (Exp(X) - Exp(-X)) / (Exp(X) + Exp(-X))
Hyperbolic Secant（双曲正割） | HSec(X) = 2 / (Exp(X) + Exp(-X))
Hyperbolic Cosecant（双曲余割） | HCosec(X) = 2 / (Exp(X) - Exp(-X))
Hyperbolic Cotangent（双曲余切） | HCotan(X) = (Exp(X) + Exp(-X)) / (Exp(X) - Exp(-X))
Inverse Hyperbolic Sine（反双曲正弦） | HArcsin(X) = Log(X + Sqr(X * X + 1))
Inverse Hyperbolic Cosine（反双曲余弦） | HArccos(X) = Log(X + Sqr(X * X - 1))
Inverse Hyperbolic Tangent（反双曲正切） | HArctan(X) = Log((1 + X) / (1 - X)) / 2
Inverse Hyperbolic Secant（反双曲正割） | HArcsec(X) = Log((Sqr(-X * X + 1) + 1) / X)
Inverse Hyperbolic Cosecant（反双曲余割） | HArccosec(X) = Log((Sgn(X) * Sqr(X * X + 1) +1) / X)
Inverse Hyperbolic Cotangent（反双曲余切） | HArccotan(X) = Log((X + 1) / (X - 1)) / 2
以 N 为底的对数 | LogN(X) = Log(X) / Log(N)


ÅÉÉúÊýÑ§º¯Êý

ÅÉÉúÊýÑ§º¯Êý
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Atn º¯Êý
Cos º¯Êý
Exp º¯Êý
Log º¯Êý
Sin º¯Êý
Sqr º¯Êý
Tan º¯Êý


VBScript 特性

VBScript 特性 		语言参考

类别 | 关键字
数组处理 Array
Dim, Private, Public, ReDim
IsArray
Erase
LBound, UBound
赋值 | Set
程序注释 | 使用 ' 或 Rem 的程序注释
常数/文字 Empty
Nothing
Null
True, False
控制流程 Do...Loop
For...Next
For Each...Next
If...Then...Else
Select Case
While...Wend
With
转换 Abs
Asc, AscB, AscW
Chr, ChrB, ChrW
CBool, CByte
CCur, CDate
CDbl, CInt
CLng, CSng, CStr
DateSerial, DateValue
Hex, Oct
Fix, Int
Sgn
TimeSerial, TimeValue
日期/时间 Date, Time
DateAdd, DateDiff, DatePart
DateSerial, DateValue
Day, Month, MonthName
Weekday, WeekdayName, Year
Hour, Minute, Second
Now
TimeSerial, TimeValue
声明 Class
Const
Dim, Private, Public, ReDim
Function, Sub
Property Get, Property Let, Property Set
错误处理 On Error
Err
表达式 Eval
Execute
RegExp
Replace
Test
格式化字符串 FormatCurrency
FormatDateTime
FormatNumber
FormatPercent
输入/输出 InputBox
LoadPicture
MsgBox
文字 Empty
False
Nothing
Null
True
数学 Atn, Cos, Sin, Tan
Exp, Log, Sqr
Randomize, Rnd
杂类 Eval Function
Execute Statement
RGB Function
对象 CreateObject
Err Object
GetObject
RegExp
运算符 加法 (+),减法 (-)
幂(^)
求余算术运算 (Mod)
乘法 (*)、除法(/)
、整除(\)
求补(-)
 字符串连接(&)
等于(=)、不等于(<>)
小于(<)、小于等于(<=)
大于(>)
、大于等于(>=)
Is
And, Or, Xor
Eqv, Imp
选项 | Option Explicit
过程 Call
Function, Sub
Property Get, Property Let, Property Set
四舍五入 Abs
Int, Fix, Round
Sgn
Script 引擎 ID ScriptEngine
ScriptEngineBuildVersion
ScriptEngineMajorVersion
ScriptEngineMinorVersion
字符串 Asc, AscB, AscW
Chr, ChrB, ChrW
Filter, InStr, InStrB
InStrRev
Join
Len, LenB
LCase, UCase
Left, LeftB
Mid, MidB
Right, RightB
Replace
Space
Split
StrComp
String
StrReverse
LTrim, RTrim, Trim
变量 IsArray
IsDate
IsEmpty
IsNull
IsNumeric
IsObject
TypeName
VarType


未包含在 VBScript 中的 Visual Basic for Applications 特性

未包含在 VBScript 中的 Visual Basic for Applications 特性 		语言参考

类别 | 特性/关键字
数组处理 Option Base
声明数组下界 <> 0
集合 Add, Count, Item, Remove
使用 ! 字符访问集合（例如，MyCollection!Foo）
条件编译 #Const
#If...Then...#Else
控制流程 DoEvents
GoSub...Return, GoTo
On Error GoTo
On...GoSub, On...GoTo
Line numbers, Line labels
转换 CVar, CVDate
Str, Val
数据类型 除 Variant 外的所有固有数据类型
Type...End Type
日期/时间 | Date 语句、Time 语句
DDE | LinkExecute, LinkPoke, LinkRequest, LinkSend
调试 Debug.Print
End, Stop
声明 Declare （声明 DLL ）
Optional
ParamArray
Static
错误处理 Erl
Error
Resume, Resume Next
文件输入/输出 | 所有传统的基本文件输入/输出 (I/O)
财务 | 所有财务函数
对象操作 | TypeOf
对象 Clipboard
Collection
运算符 | Like
选项 Deftype
Option Base
Option Compare
Option Private Module
选择条件 包含 Is 关键字或任何比较运算符的表达式
包含一系列使用 To 关键字的数值的表达式
字符串 固定长度字符串
LSet, RSet
Mid 语句
StrConv
使用对象 | 使用 ! 对集合的访问


运算符优先级

运算符优先级 		语言参考
版本 1

请参阅

描述
在一个表达式中进行多个运算时，每一部分都会按预先确定的顺序进行计算求解，这个顺序被称为运算符优先级。括号可改变优先级的顺序，强制优先处理表达式的某部分。括号内的操作总是比括号外的操作先被执行。但是在括号内，仍保持正常的运算符优先级。

当表达式有多种运算符时，先处理算术运算符，接着处理比较运算符，然后再处理逻辑运算符。所有比较运算符有相同的优先级，即按它们出现的顺序从左到右进行处理。算术运算符和逻辑运算符按下列优先级进行处理：

算术 | 比较 | 逻辑
指数运算 (^) | 相等 (=) | Not
负数 (-) | 不等 (<>) | And
乘法和除法 (*, /) | 小于 (<) | Or
整除 (\) | 大于 (>) | Xor
求余运算 (Mod) | 小于或等于 (<=) | Eqv
加法和减法 (+, -) | 大于或等于 (>=) | Imp
字符串连接 (&) Is &

当乘法和除法同时出现在表达式中时，按照从左到右出现的顺序处理每个运算符。同样，当加法和减法同时出现在表达式中时，也按照从左到右出现的顺序处理每个运算符。

字符串连接运算符 (&) 不是算术运算符，但是就其优先级而言，它在所有算术运算符之后，而在所有比较运算符之前。Is 运算符是对象引用的比较运算符，它并不比较对象或对象的值，而只判断两个对象引用是否引用了相同的对象。


ÔËËã·ûÓÅÏÈ¼¶

ÔËËã·ûÓÅÏÈ¼¶
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Is ÔËËã·û
ÔËËã·û¸ÅÊö


运算符概述

运算符概述 		语言参考
版本 1

请参阅

算术运算符
用于执行数学计算的运算符。
赋值运算符
运算符用于为变量或属性赋值。
比较运算符
用于执行比较操作的运算符。
连接运算符
用于连接字符串的运算符。
逻辑运算符
用于执行逻辑操作的运算符。


ÔËËã·û¸ÅÊö

ÔËËã·û¸ÅÊö
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

ÔËËã·ûÓÅÏÈ¼¶


Microsoft Scripting 运行时库特性

Microsoft Scripting 运行时库特性 		语言参考

分类 功能/关键字
集合 Drives
Files
Folders
文件和系统管理
  • Dictionary
    Add, Exists, Items, Keys, Remove, RemoveAll
    Count, Item, Key
  • Drive, File, Folder
    Copy, Delete, Move, OpenAsTextStream
    Attributes, Count, DateCreated, DateLastAccessed, DateLastModified, Drive, ParentFolder, Name, Path, ShortName, ShortPath, Size
    AvailableSpace, DriveLetter, DriveType, FileSystem, FreeSpace, IsReady, RootFolder, SerialNumber, ShareName, TotalSize, VolumeName
  • FileSystemObject
    BuildPath, CopyFile, CopyFolder, CreateFolder, CreateTextFile, DeleteFile, DeleteFolder, DriveExists, FileExists, FolderExists, GetAbsolutePathName, GetBaseName, GetDrive, GetDriveName, GetExtensionName, GetFile, GetFileName, GetFolder, GetParentFolderName, GetSpecialFolder, GetTempName, MoveFile, MoveFolder, OpenTextFile
    Drives
  • TextStream
    Close, Read, ReadAll, ReadLine, Skip, SkipLine, Write, WriteBlankLines, WriteLine
    AtEndOfLine, AtEndOfStream, Column, Line


未包含在 Visual Basic for Applications 中的 VBScript 特性

未包含在 Visual Basic for Applications 中的 VBScript 特性 		语言参考

分类 | 特性/关键字
声明 | Class
杂项 Eval
Execute
对象 | RegExp
Script 引擎标识 ScriptEngine
ScriptEngineBuildVersion
ScriptEngineMajorVersion
ScriptEngineMinorVersion


算术运算符

算术运算符 		语言参考
版本 1

^ 运算符
* 运算符
/ 运算符
\ 运算符
Mod 运算符
+ 运算符
- 运算符
连接运算符


赋值运算符

赋值运算符 		语言参考
版本 1

= 运算符


连接运算符

连接运算符 		语言参考
版本 1

& 运算符
+ 运算符


转换函数

转换函数 		语言参考
版本 1

Asc 函数
CBool 函数
CByte 函数
CCur 函数
CDate 函数
CDbl 函数
Chr 函数
CInt 函数
CLng 函数
CSng 函数
CStr 函数
Hex 函数
Oct 函数


VBScript 错误信息

VBScript 错误信息 		语言参考

错误代码 | 信息
5 | 无效的过程调用或参数
6 | 溢出
7 | 内存不够
9 | 下标越界
10 | 数组长度固定或临时锁定
11 | 被零除
13 | 类型不匹配
14 | 字符串空间溢出
28 | 堆栈空间溢出
35 | Sub 或 Function 未定义
48 | 加载 DLL 时出错
51 | 内部错误
53 | 文件未找到
57 | 设备 I/O 错误
58 | 文件已存在
61 | 磁盘已满
67 | 文件太多
70 | 没有权限
75 | 路径/文件访问错误
76 | 路径未找到
91 | 未设置对象变量或 With 块变量
92 | 未初始化 For 循环
94 | 无效的 Null 使用
322 | 无法创建必要的临时文件
424 | 要求使用对象
429 | ActiveX 部件无法创建对象
430 | 类不支持 Automation
432 | Automation 操作过程中，未找到文件名或类名
438 | 对象不支持此属性或方法
440 | Automation 错误
445 | 对象不支持此操作
446 | 对象不支持命名的参数
447 | 对象不支持当前区域设置
448 | 未找到命名参数
449 | 此参数必选
450 | 参数个数错误或无效的属性赋值
451 | 对象不是集合
453 | 未找到指定的 DLL 函数
455 | 代码资源锁定错误
457 | 此键已和集合中的元素关联
458 | VBScript 中不支持使用 Automation 类型的变量
500 | 变量未定义
501 | 非法赋值
502 | 用此对象进行脚本编程会出错
503 | 对象不能安全初始化
1001 | 内存不够
1002 | 语法错误
1003 | 缺少“:”
1004 | 缺少“;”
1005 | 缺少“(”
1006 | 缺少“)”
1007 | 缺少“]”
1008 | 缺少“{”
1009 | 缺少“}”
1010 | 缺少标识符
1011 | 缺少“=”
1012 | 缺少“If”
1013 | 缺少“To”
1014 | 缺少“End”
1015 | 缺少“Function”
1016 | 缺少“Sub”
1017 | 缺少“Then”
1018 | 缺少“Wend”
1019 | 缺少“Loop”
1020 | 缺少“Next”
1021 | 缺少“Case”
1022 | 缺少“Select”
1023 | 缺少表达式
1024 | 缺少语句
1025 | 语句未结束
1026 | 缺少整型常数
1027 | 缺少“While”或“Until”
1028 | 缺少“While”、“Until”或语句结尾
1029 | 局部变量或参数过多
1030 | 标识符过长
1031 | 无效的编号
1032 | 无效的字符
1033 | 未终止字符串常数
1034 | 未终止注释
1035 | 嵌套的注释
1037 | “Me”关键字使用无效
1038 | “Loop”缺少“Do”
1039 | 无效的“Exit”语句
1040 | 无效的“For”循环控制变量
1041 | 名称被重定义
1042 | 必须是行中的第一个语句
1043 | 无法为非 ByVal 参数赋值
1044 | 调用 Sub 时不能使用括号
1045 | 缺少字母常数
1046 | 缺少“In”
32766 | True
32767 | False
32811 | 未找到元素


逻辑运算符

逻辑运算符 		语言参考
版本 1

And 运算符
Not 运算符
Or 运算符
Xor 运算符


数学函数

数学函数 		语言参考
版本 1

Abs 函数
Atn 函数
Cos 函数
Exp 函数
Fix 函数
Int 函数
Log 函数
Rnd 函数
Sgn 函数
Sin 函数
Sqr 函数
Tan 函数
派生数学函数


Empty

Empty 		语言参考
版本 1

请参阅

描述
Empty 关键字用于指明未初始化的变量值。 此关键字与 Null 并不相同。


False

False 		语言参考
版本 1

请参阅

描述
False 关键字的值为零。


Nothing

Nothing 		语言参考
版本 1

请参阅

描述
在 VBScript 中，Nothing 关键字用于取消某对象变量与实际对象的关联。使用 Set 语句将对象变量赋值为 Nothing。例如：
Set MyObject = Nothing
多个对象变量可以引用同一个实际对象。当 Nothing 赋值给某对象变量后，此变量就不再引用任何实际对象。当多个对象变量引用同一个对象时，只有在所有对象变量都设置为 Nothing （在设置为 Nothing 的最后一个对象变量超出范围后，显式或隐式地使用 Set 命令）后，与变量所引用的对象相关联的内存和系统资源才被释放。


Nothing

Nothing
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Dim Óï¾ä
Set Óï¾ä


Null

Null 		语言参考
版本 1

请参阅

描述
Null 关键字用于指明变量包含的数据无效。此关键字与 Empty 并不相同。


True

True 		语言参考
版本 1

请参阅

描述
True 关键字的值等于 -1。


字符集 (0 - 127)

字符集 (0 - 127) 		语言参考
版本 1

字符集 (128 - 255)

代码 字符 代码 字符 代码 字符 代码 字符
0 32 [空格] 64 @ 96 `
1  33 ! 65 A 97 a
2  34 " 66 B 98 b
3  35 # 67 C 99 c
4  36 $ 68 D 100 d
5  37 % 69 E 101 e
6  38 & 70 F 102 f
7  39 ' 71 G 103 g
8 ** 40 ( 72 H 104 h
9 ** 41 ) 73 I 105 i
10 ** 42 * 74 J 106 j
11 43 + 75 K 107 k
12 44 , 76 L 108 l
13 ** 45 - 77 M 109 m
14  46 . 78 N 110 n
15  47 / 79 O 111 o
16  48 0 80 P 112 p
17  49 1 81 Q 113 q
18  50 2 82 R 114 r
19  51 3 83 S 115 s
20  52 4 84 T 116 t
21  53 5 85 U 117 u
22  54 6 86 V 118 v
23  55 7 87 W 119 w
24  56 8 88 X 120 x
25  57 9 89 Y 121 y
26  58 : 90 Z 122 z
27  59 ; 91 [ 123 {
28  60 < 92 \ 124 |

29  61 = 93 ] 125 }
30  62 > 94 ^ 126 ~
31  63 ? 95 _ 127 

** 数值 8、9、10 和 13 可以分别转换为退格符、制表符、换行符和回车符。这些字符都没有图形表示，但是对于不同的应用程序，这些字符可能会影响文本的显示效果。

 表示在当前平台上不支持的字符。


字符集 (128 - 255)

字符集 (128 - 255) 		语言参考
版本 1

字符集 (0 - 127)

代码 | 字符 | 代码 | 字符 | 代码 | 字符 | 代码 | 字符
128 € 160 [空格] 192 À 224 à
129  161 ¡ 193 Á 225 á
130 ‚ 162 ¢ 194 Â 226 â
131 ƒ 163 £ 195 Ã 227 ã
132 „ 164 ¤ 196 Ä 228 ä
133 … 165 ¥ 197 Å 229 å
134 † 166 ¦ 198 Æ 230 æ
135 ‡ 167 § 199 Ç 231 ç
136 ˆ 168 ¨ 200 È 231 ç
137 ‰ 169 © 201 É 232 è
138 | Š | 170 | ª | 202 | Ê | 233 | é
139 ‹ 171 « 203 Ë 234 ê
140 Œ 172 ¬ 204 Ì 235 ë
141  173 205 Í 236 ì
142 Ž 174 ® 206 Î 237 í
143  175 ¯ 207 Ï 238 î
144  176 ° 208 Ð 239 ï
145 ‘ 177 ± 209 Ñ 240 ð
146 ’ 178 ² 210 Ò 241 ñ
147 “ 179 ³ 211 Ó 242 ò
148 ” 180 ´ 212 Ô 243 ó
149 • 181 µ 213 Õ 244 ô
150 – 182 ¶ 214 Ö 245 õ
151 — 183 · 215 × 246 ö
152 ˜ 184 ¸ 216 Ø 247 ÷
153 ™ 185 ¹ 217 Ù 248 ø
154 | š | 186 | º | 218 | Ú | 249 | ù
155 › 187 » 219 Û 250 ú
156 | œ | 188 | ¼ | 220 | Ü | 251 | û
157  189 ½ 221 Ý 252 ü
158 | ž | 190 | ¾ | 222 | Þ | 253 | ý
159 Ÿ 191 ¿ 223 ß 254 þ
 表示在当前平台下不支持。


Add 方法(Dictionary)

Add 方法(Dictionary) 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
向 Dictionary 对象添加键和项目对。
语法
object.Add key, item

Add 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 Dictionary 对象的名称。
key | 必选。与添加的 item 相关的 key。
item | 必选。与添加的 key 相关的 item。

说明
如果 key 已经存在，则会出现错误。

下面例子举例说明如何使用 Add 方法:

Dim d                   '创建变量。
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens"     '添加一些键和项目。
d.Add "b", "Belgrade"
d.Add "c", "Cairo"


Add 方法(Dictionary)

Add 方法(Dictionary)
应用于 		Scripting 运行时参考

Dictionary 对象


Add 方法(Dictionary)

Add 方法(Dictionary)
请参阅 		Scripting 运行时参考

AddFolders 方法
Exists 方法
Items 方法
Keys 方法
Remove 方法
RemoveAll 方法


AddFolders 方法(Folders)

Add 方法(Folders) 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
向 Folders 集合添加新 Folder。
语法
object. Add(folderName)

Add 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 Folders 集合的名称。
folderName | 必选。要添加的新 Folder 名称。

说明
下面例子举例说明如何利用 Add 方法添加新文件夹:
Sub AddNewFolder(path, folderName)
  Dim fso, f, fc, nf
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetFolder(path)
  Set fc = f.SubFolders
  If folderName <> "" Then
    Set nf = fc.Add(folderName)
  Else
    Set nf = fc.Add("New Folder")
  End If
End Sub
如果 folderName 已经存在，则会出现错误。


AddFolders 方法(Folders)

Add 方法(Folders)
应用于 		Scripting 运行时参考

Folders 集合


AddFolders 方法

Add 方法(Folders)
请参阅 		Scripting 运行时参考

Add 方法(Folders)


BuildPath 方法

BuildPath 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
向现有路径后添加名称。
语法
object.BuildPath(path, name)

BuildPath 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 对象的名称。
path | 必选。要附加 name 的现有路径。可以是绝对或相对路径且无需指定现有文件夹。
name | 必选。要附加到现有 path 的名称。

说明
仅在必要时，BuildPath 方法在现有路径与该名称之间插入附加路径分隔符。

下面例子举例说明如何使用 BuildPath 方法:

Function GetBuildPath(path)
  Dim fso, newpath
  Set fso = CreateObject("Scripting.FileSystemObject")
  newpath = fso.BuildPath(path, "Sub Folder")
  GetBuildPath = newpath
End Function


BuildPath 方法

BuildPath 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


BuildPath 方法

BuildPath 方法
请参阅 		Scripting 运行时参考

GetAbsolutePathName 方法
GetBaseName 方法
GetDriveName 方法
GetExtensionName 方法
GetFileName 方法
GetParentFolderName 方法
GetTempName 方法


Clear 方法

Clear 方法 		语言参考
版本 1

请参阅 应用于

描述
清除 Err 对象的所有属性设置。
语法
object.Clear

object 应为 Err 对象的名称。

说明
在错误处理后，使用 Clear 显式地清除 Err 对象。此操作是必须的，例如使用 On Error Resume Next 延迟错误处理时。在任何时候执行下列语句，VBScript 自动调用 Clear 方法：
  • On Error Resume Next
  • Exit Sub
  • Exit Function
下面例子举例说明如何使用 Clear 方法:
  ’发生错误继续下一步
Err.Raise 6  '发生溢出错误。
MsgBox ("Error # " & CStr(Err.Number) & " " & Err.Description)
Err.Clear    ' 清除错误。


Clear ·½·¨

Clear ·½·¨
Ó¦ÓÃÓÚ 		ÓïÑÔ²Î¿¼

Err ¶ÔÏó


Clear ·½·¨

Clear ·½·¨
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

ÊôÐÔÃèÊö
Err ¶ÔÏó
Êý×ÖÊôÐÔ
On Error Óï¾ä
Raise ·½·¨
Source ÊôÐÔ


Close 方法

Close 方法 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
关闭打开的 TextStream 文件。
语法
object.Close

object 应为 TextStream 对象的名称。

说明
下面例子举例说明如何使用 Close 方法关闭打开的 TextStream 文件:
Sub CreateAFile
  Dim fso, MyFile
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set MyFile = fso.CreateTextFile("c:\testfile.txt", True)
  MyFile.WriteLine("这是一个测试。")
  MyFile.Close
End Sub


Close ·½·¨

Close ·½·¨
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

TextStream ¶ÔÏó


Close ·½·¨

Close ·½·¨
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

Read ·½·¨
ReadAll ·½·¨
ReadLine ·½·¨
Skip ·½·¨
SkipLine ·½·¨
Write ·½·¨
WriteLine ·½·¨
WriteBlankLines ·½·¨


Copy 方法

Copy 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
将指定的文件或文件夹从某位置复制到另一位置。
语法
object.Copy destination[, overwrite]

Copy 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 File 或 Folder 对象的名称。
destination | 必选。复制文件或文件夹的目标位置。不允许使用通配符。
overwrite | 可选。Boolean 值。如果覆盖现有文件或文件夹，则 Boolean 值为 True （默认）；否则为 False。

说明
对 File 或 Folder 应用 Copy 方法的结果与使用 FileSystemObject.CopyFile 或 FileSystemObject.CopyFolder 执行的操作完全相同。在 FileSystemObject.CopyFile 或 FileSystemObject.CopyFolder 中，使用 object 引用文件或文件夹，并将文件或文件夹作为参数传递给 FileSystemObject.CopyFile 或 FileSystemObject.CopyFolder。然而，应该注意的是 FileSystemObject.CopyFile 或 FileSystemObject.CopyFolder 方法可以复制多个文件或文件夹。

下列示例显示了 Copy 方法的使用:

Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("c:\testfile.txt", True)
MyFile.WriteLine("这是一个测试")
MyFile.Close
Set MyFile = fso.GetFile("c:\testfile.txt")
MyFile.Copy ("c:\windows\desktop\test2.txt")


Copy 方法

Copy 方法
应用于 		Scripting 运行时参考

File 对象
Folder 对象


Copy 方法

Copy 方法
请参阅 		Scripting 运行时参考

CopyFile 方法
CopyFolder 方法
Delete 方法
Move 方法
OpenAsTextStream 方法


CopyFile 方法

CopyFile 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
将一个或多个文件从某位置复制到另一位置。
语法
object.CopyFile source, destination[, overwrite]

CopyFile 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 对象的名称。
source | 必选。表示指定文件的字符串。要复制一个或多个文件时，文件名中可以有通配符。
destination | 必选。表示目标位置的字符串，从 source 复制文件到该位置。不允许用通配符。
overwrite | 可选。Boolean 值表明是否覆盖现有文件。如果是 True，则覆盖文件；如果是 False，则不覆盖现有文件。默认值是 True。要注意，无论 overwrite 设置为何值，只要设置 destination 为只读属性，CopyFile 操作就无法完成。

说明
仅能在 source 参数的路径最后一个组成部分中使用通配符。例如，可以使用：
FileSystemObject.CopyFile "c:\mydocuments\letters\*.doc", "c:\tempfolder\"
但是，不能使用：
FileSystemObject.CopyFile "c:\mydocuments\*\R1???97.xls", "c:\tempfolder"
如果 source 包含通配符或 destination 以路径分隔符 (\) 结束，则假定 destination 是现有文件夹，复制匹配文件到该文件夹。否则，假定 destination 为要创建的文件。在任一种情况下，复制单个文件时，会出现以下三种情况。
  • 如果 destination 不存在，则复制 source。这是通常会发生的情况。
  • 如果 destination 是已经存在的文件，当 overwrite 为 False 时会出现错误。否则，复制 source 覆盖现有文件。
  • 如果 destination 是目录，则会出现错误。
如果 source 使用通配符，但并没有相匹配的文件时，则会出现错误。CopyFile 方法在遇到出现的第一个错误时停止。该方法不会撤消错误发生前所作的任何更改。


CopyFile 方法

CopyFile 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


CopyFile 方法

CopyFile 方法
请参阅 		Scripting 运行时参考

Copy 方法
CopyFolder 方法
CreateTextFile 方法
DeleteFile 方法
MoveFile 方法


CopyFolder 方法

CopyFolder 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
将文件夹从某位置递归复制到另一位置。
语法
object.CopyFolder source, destination[, overwrite]

CopyFolder 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 对象的名称。
source | 必选。表示指定文件夹的字符串。要复制一个或多个文件夹时，可使用通配符。
destination | 必选。表示目标位置的字符串，复制 source 文件夹或子文件夹到该位置。不允许用通配符。
overwrite | 可选。Boolean 值表明是否覆盖现有文件夹。如果为 True，则覆盖文件；如果为 False，则不覆盖文件。默认值是 True。

说明
仅能在 source 参数的路径最后一个组成部分中使用通配符。例如，可以使用：
FileSystemObject.CopyFolder "c:\mydocuments\letters\*", "c:\tempfolder\"
但是，不可以使用：
FileSystemObject.CopyFolder "c:\mydocuments\*\*", "c:\tempfolder\"
如果 source 包含通配符或 destination 以路径分隔符 (\) 结束，则假定 destination 是现有文件夹，在该文件夹中复制匹配文件夹或子文件夹。否则，假定 destination 是要创建的文件夹。在任一种情况下，复制单个文件夹时，会发生如下四种情况。
  • 如果 destination 不存在，则复制 source 文件夹和其所有内容。这是通常会发生的情况。
  • 如果 destination 是已经存在的文件，则出现错误。
  • 如果 destination 是目录，则复制文件夹和其中的所有内容。如果在 destination 已经存在 source 包含的文件，且 overwrite 为 False，则会出现错误。否则，复制该文件覆盖现有文件。
  • 如果 destination 是只读目录，在向该目录复制现有只读文件，且 overwrite 为 False 时，就会出现错误。
如果 source 使用通配符，但没有匹配文件时，也会出现错误。

CopyFolder 方法在遇到出现的第一个错误时停止。该方法不会撤消错误发生前所作的任何更改。


CopyFolder 方法

CopyFolder 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


CopyFolder 方法

CopyFolder 方法
请参阅 		Scripting 运行时参考

CopyFile 方法
Copy 方法
CreateFolder 方法
DeleteFolder 方法
MoveFolder 方法


CreateFolder 方法

CreateFolder 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
创建文件夹。
语法
object.CreateFolder(foldername)

CreateFolder 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 对象的名称。
foldername | 必选。字符串表达式，指明要创建的文件夹。

说明
如果指定的文件夹已经存在，则会出现错误。

下面例子举例说明如何使用 CreateFolder 方法:

 Function CreateFolderDemo
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.CreateFolder("c:\New Folder")
  CreateFolderDemo = f.Path
End Function


CreateFolder 方法

CreateFolder 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


CreateFolder 方法

CreateFolder 方法
请参阅 		Scripting 运行时参考

CopyFolder 方法
DeleteFolder 方法
MoveFolder 方法


CreateTextFile 方法

CreateTextFile 方法 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
创建指定文件并返回 TextStream 对象，该对象可用于读或写创建的文件。
语法
object.CreateTextFile(filename[, overwrite[, unicode]])

CreateTextFile 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 或 Folder 对象的名称。
filename | 必选。字符串表达式，指明要创建的文件。
overwrite | 可选。Boolean 值指明是否可以覆盖现有文件。如果可覆盖文件，该值为 True；如果不能覆盖文件，则该值为 False 。如果省略该值，则不能覆盖现有文件。
unicode | 可选。Boolean 值指明是否以 Unicode 或 ASCII 文件格式创建文件。如果以 Unicode 文件格式创建文件，则该值为 True；如果以 ASCII 文件格式创建文件，则该值为 False。如果省略此部分，则假定创建 ASCII 文件。

说明
以下代码举例说明如何使用 CreateTextFile 方法创建并打开文本文件：
Sub CreateAfile
  Dim fso, MyFile
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set MyFile = fso.CreateTextFile("c:\testfile.txt", True)
  MyFile.WriteLine("这是一个测试。")
  MyFile.Close
End Sub
对于 filename 已经存在的文件，如果 overwrite 参数为 False，或未提供此参数时，则会出现错误。


CreateTextFile 方法

CreateTextFile 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象
Folder 对象


CreateTextFile 方法

CreateTextFile 方法
请参阅 		Scripting 运行时参考

CreateFolder 方法
OpenAsTextStream 方法
OpenTextFile 方法


Delete 方法

Delete 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
删除指定的文件或文件夹。
语法
object.Delete force

Delete 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 File 或 Folder 对象的名称。
force | 可选。Boolean 值。如果要删除的文件或文件夹的属性设置为只读属性，则该值为 True；否则为 False（默认）。

说明
若指定文件或文件夹不存在，错误发生。有内容的文件夹和无内容的文件夹所使用的Delete方法无异。无论有无内容，指定文件夹皆被删除。

对 File 或 Folder 应用 Delete 方法的结果与使用 FileSystemObject.DeleteFile 或 FileSystemObject.DeleteFolder 执行的操作完全相同。

下面的示例说明了方法的用法 Delete：

Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("c:\testfile.txt", True)
MyFile.WriteLine("这是一个测试。")
MyFile.Close
Set MyFile = fso.GetFile("c:\testfile.txt")
MyFile.Delete


Delete 方法

Delete 方法
应用于 		Scripting 运行时参考

File 对象
Folder 对象


Delete 方法

Delete 方法
请参阅 		Scripting 运行时参考

Copy 方法
DeleteFile 方法
DeleteFolder 方法
Move 方法
OpenAsTextStream 方法


DeleteFile 方法

DeleteFile 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
删除指定的文件。
语法
object.DeleteFile filespec[, force]

DeleteFile 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 的名称。
filespec | 必选。要删除的文件名。filespec 在路径的最后一个组成部分中可包含通配符。
force | 可选。Boolean 值。如果要删除只读文件，则该值为 True；否则为 False（默认）。

说明
如果没有找到匹配文件，则会出现错误。DeleteFile 方法在遇到出现的第一个错误时停止。该方法不会撤消错误发生前所作的任何更改。

下面示例说明如何使用 DeleteFile 方法:

Sub DeleteAFile(filespec)
  Dim fso
  Set fso = CreateObject("Scripting.FileSystemObject")
  fso.DeleteFile(filespec)
End Sub


DeleteFile 方法

DeleteFile 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


DeleteFile 方法

DeleteFile 方法
请参阅 		Scripting 运行时参考

CopyFile 方法
CreateTextFile 方法
Delete 方法
DeleteFolder 方法
MoveFile 方法


DeleteFolder 方法

DeleteFolder 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
删除指定的文件夹和其中的内容。
语法
object.DeleteFolder folderspec[, force]

DeleteFolder 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 的名称。
folderspec | 必选。要删除的文件夹名称。folderspec 在路径的最后一个组成部分中可包含通配符。
force | 可选。Boolean 值。如果要删除只读文件夹，则该值为 True； 否则为 False（默认）。

说明
DeleteFolder 方法不能区分文件夹中是否包含内容。无论文件夹是否包含内容，都将删除该文件夹。

如果未找到匹配文件夹，则会出现错误。DeleteFolder 方法在遇到出现的第一个错误时停止。该方法不会撤消错误发生前所作的任何更改。

下面例子举例说明如何使用DeleteFolder 方法:

Sub DeleteAFolder(filespec)
  Dim fso
  Set fso = CreateObject("Scripting.FileSystemObject")
  fso.DeleteFolder(filespec)
End Sub


DeleteFolder 方法

DeleteFolder 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


DeleteFolder 方法

DeleteFolder 方法
请参阅 		Scripting 运行时参考

CopyFolder 方法
CreateFolder 方法
Delete 方法
DeleteFile 方法
MoveFolder 方法


DriveExists 方法

DriveExists 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
如果指定的驱动器存在，则返回 True；否则返回 False。
语法
object.DriveExists(drivespec)

DriveExists 方法语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 对象的名称。
drivespec | 必选。驱动器号或指定的完整路径。

说明
对于可移动媒体驱动器，即使驱动器中没有插入媒体，DriveExists 方法仍返回 True。用 Drive 对象的 IsReady 属性确定驱动器是否就绪。

下面例子举例说明如何使用 DriveExists 方法:

 Function ReportDriveStatus(drv)
  Dim fso, msg
  Set fso = CreateObject("Scripting.FileSystemObject")
  If fso.DriveExists(drv) Then
    msg = ("驱动器 " & UCase(drv) & " 存在。")
  Else
    msg = ("驱动器 " & UCase(drv) & " 不存在。")
  End If
  ReportDriveStatus = msg
End Function


DriveExists 方法

DriveExists 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


DriveExists 方法

DriveExists 方法
请参阅 		Scripting 运行时参考

Drive 对象
Drives 集合
FileExists 方法
FolderExists 方法
GetDrive 方法
GetDriveName 方法
IsReady 属性


Remove 方法

.
Execute 方法 		语言参考
版本 5

请参阅 应用于

描述
对指定的字符串执行正则表达式搜索。
语法
object.Execute(string)

Execute 方法的语法包括以下几个部分：

部分 | 描述
object | 必需的。总是一个 RegExp 对象的名称。
string | 必需的。要在其上执行正则表达式的文本字符串。

说明
正则表达式搜索的设计模式是通过 RegExp 对象的 Pattern 来设置的。

Execute 方法返回一个 Matches 集合，其中包含了在 string 中找到的每一个匹配的 Match 对象。如果未找到匹配，Execute 将返回空的 Matches 集合。

下面的代码说明了 Execute 方法的用法：

Function RegExpTest(patrn, strng)
  Dim regEx					' 建立变量。
  Set regEx = New RegExp			' 建立正则表达式。
  regEx.Pattern = patrn			' 设置模式。
  regEx.IgnoreCase = False		' 设置区分大小写。
  regEx.Global = True			' 搜索全部匹配。
  RegExpTest = regEx.Execute(strng)	' 执行搜索。
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))


Execute 方法

Execute 方法
应用于 		语言参考

RegExp 对象


Execute 方法

Execute 方法
请参阅 		语言参考

Replace 方法
Test 方法


Exists 方法

Exists 方法 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
如果在 Dictionary 对象中存在指定键，返回 True；如果不存在，返回 False。
语法
object.Exists(key)

Exists 方法的语法有以下部分：

参数 | 描述
object | 必选。应为 Dictionary 对象的名称。
key | 必选。Key 为在 Dictionary 对象中要查找的值。

说明
下面例子举例说明如何使用Exists 方法:
 Function KeyExistsDemo
  Dim d, msg              '创建一些变量。
  Set d = CreateObject("Scripting.Dictionary")
  d.Add "a", "Athens"     '添加一些键和项目。
  d.Add "b", "Belgrade"
  d.Add "c", "Cairo"
  If d.Exists("c") Then
    msg = "指定的键存在。"
  Else
    msg = "指定的键不存在。"
  End If
  KeyExistsDemo = msg
End Function


Exists ·½·¨

Exists ·½·¨
Ó¦ÓÃÓÚ 		ÓïÑÔ²Î¿¼

Dictionary ¶ÔÏó


Exists ·½·¨

Exists ·½·¨
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Add ·½·¨(Dictionary)
Items ·½·¨
Keys ·½·¨
Remove ·½·¨
RemoveAll ·½·¨


FileExists 方法

FileExists 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
如果指定的文件存在返回 True；否则返回 False。
语法
object.FileExists(filespec)

FileExists 方法的语法有如下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 对象的名称。
filespec | 必选。文件名，表示要确定是否存在的文件。如果文件不在当前文件夹中，则必须提供完整路径名（绝对路径或相对路径）。

说明
下面例子举例说明如何使用 FileExists 方法:

 Function ReportFileStatus(filespec)
  Dim fso, msg
  Set fso = CreateObject("Scripting.FileSystemObject")
  If (fso.FileExists(filespec)) Then
    msg = filespec & " 存在。"
  Else
    msg = filespec & " 不存在。"
  End If
  ReportFileStatus = msg
End Function


FileExists 方法

FileExists 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


FileExists 方法

FileExists 方法
请参阅 		Scripting 运行时参考

DriveExists 方法
FolderExists 方法
GetFile 方法
GetFileName 方法


FolderExists 方法

FolderExists 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
如果指定的文件夹存在，则返回 True；否则返回 False。
语法
object.FolderExists(folderspec)

FolderExists 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 的名称。
folderspec | 必选。文件夹名称，表示要确定是否存在的文件夹。如果该文件夹不在当前文件夹中，则必须提供完整路径名（绝对路径或相对路径）。

说明
下面例子举例说明如何使用 FolderExists 方法:

Function ReportFolderStatus(fldr)
  Dim fso, msg
  Set fso = CreateObject("Scripting.FileSystemObject")
  If (fso.FolderExists(fldr)) Then
    msg = fldr & " 存在。"
  Else
    msg = fldr & " 不存在。"
  End If
  ReportFolderStatus = msg
End Function


FolderExists 方法

FolderExists 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


FolderExists 方法

FolderExists 方法
请参阅 		Scripting 运行时参考

DriveExists 方法
FileExists 方法
GetFolder 方法
GetParentFolderName 方法


GetAbsolutePathName 方法

GetAbsolutePathName 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
从提供的指定路径中返回完整且含义明确的路径。
语法
object.GetAbsolutePathName(pathspec)

GetAbsolutePathName 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 的名称。
pathspec | 必选。指定的路径，该路径要转换为完整且含义明确的路径。

说明
如果路径提供从指定驱动器根目录开始的完整引用，则该路径是完整且含义明确的。如果路径指定某映射驱动器的根目录文件夹，则该路径仅能以路径分隔符 (\) 结束。

假定当前目录为 c:\mydocuments\reports，下表举例说明 GetAbsolutePathName 方法执行的操作。

pathspec | 返回路径
"c:" | "c:\mydocuments\reports"
"c:.." | "c:\mydocuments"
"c:\\\" | "c:\"
"c:*.*\may97" | "c:\mydocuments\reports\*.*\may97"
"region1" | "c:\mydocuments\reports\region1"
"c:\..\..\mydocuments" | "c:\mydocuments"


GetAbsolutePathName 方法

GetAbsolutePathName 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


GetAbsolutePathName 方法

GetAbsolutePathName 方法
请参阅 		Scripting 运行时参考

GetBaseName 方法
GetDrive 方法
GetDriveName 方法
GetExtensionName 方法
GetFile 方法
GetFileName 方法
GetFolder 方法
GetParentFolderName 方法
GetSpecialFolder 方法
GetTempName 方法


GetBaseName 方法

GetBaseName 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回字符串，其中包含文件的基本名 (不带扩展名), 或者提供的路径说明中的文件夹。
语法
object.GetBaseName(path)

GetBaseName 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 的名称。
path | 必选。指定文件或文件夹的路径，要返回其组成部分的基本名。

说明
如果路径中没有任何文件或文件夹与指定的 path 参数匹配，则 GetBaseName 方法返回零长度字符串 ("")。

下面例子举例说明如何使用 GetBaseName 方法:

Function GetTheBase(filespec)
  Dim fso
  Set fso = CreateObject("Scripting.FileSystemObject")
  GetTheBase = fso.GetBaseName(filespec)
End Function
注意 GetBaseName 方法只能对提供 path 的字符串起作用。它不能试图分析一个路径，也不能检查指定路径是否存在。


GetBaseName 方法

GetBaseName 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


GetBaseName 方法

GetBaseName 方法
请参阅 		Scripting 运行时参考

GetAbsolutePathName 方法
GetDrive 方法
GetDriveName 方法
GetExtensionName 方法
GetFile 方法
GetFileName 方法
GetFolder 方法
GetParentFolderName 方法
GetSpecialFolder 方法
GetTempName 方法


GetDrive 方法

GetDrive 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回与指定的路径中驱动器相对应的 Drive 对象。
语法
object.GetDrive drivespec

GetDrive 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 的名称。
drivespec | 必选。drivespec 可以是驱动器号 (c)、带冒号的驱动器号 (c:)、带有冒号与路径分隔符的驱动器号 (c:\) 或任何指定的网络共享 (\\computer2\share1)。

说明
对于网络共享，检查并确保该网络共享存在。

若drivespec与已接受格式不一致或不存在，就会出错。为了在调用 GetDrive 方法时使用标准路径字符串，使用下列序列得到与 drivespec 相匹配的字符串:

DriveSpec = GetDriveName(GetAbsolutePathName(Path))
下面示例说明如何使用 GetDrive 方法:
 Function ShowFreeSpace(drvPath)
  Dim fso, d, s
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set d = fso.GetDrive(fso.GetDriveName(drvPath))
  s = "Drive " & UCase(drvPath) & " - "
  s = s & d.VolumeName  & "<BR>"
  s = s & "Free Space: " & FormatNumber(d.FreeSpace/1024, 0)
  s = s & " Kbytes"
  ShowFreeSpace = s
End Function


GetDrive 方法

GetDrive 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


GetDrive 方法

GetDrive 方法
请参阅 		Scripting 运行时参考

GetAbsolutePathName 方法
GetBaseName 方法
GetDriveName 方法
GetExtensionName 方法
GetFile 方法
GetFileName 方法
GetFolder 方法
GetParentFolderName 方法
GetSpecialFolder 方法
GetTempName 方法


GetDriveName 方法

GetDriveName 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回包含指定路径中驱动器名的字符串。
语法
object.GetDriveName(path)

GetDriveName 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 的名称。
path | 必选。指定路径，要返回其组成部分的驱动器名。

说明
如果无法确定驱动器，则 GetDriveName 方法返回零长度字符串 ("")。

下面例子举例说明如何使用GetDriveName 方法:

 Function GetAName(DriveSpec)
  Dim fso
  Set fso = CreateObject("Scripting.FileSystemObject")
  GetAName = fso.GetDriveName(Drivespec)
End Function
注意 GetDriveName 方法只能对提供 path 的字符串起作用。它不能试图分析一个路径，也不能检查指定路径是否存在。


GetDriveName 方法

GetDriveName 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


GetDriveName 方法

GetDriveName 方法
请参阅 		Scripting 运行时参考

GetAbsolutePathName 方法
GetBaseName 方法
GetDrive 方法
GetExtensionName 方法
GetFile 方法
GetFileName 方法
GetFolder 方法
GetParentFolderName 方法
GetSpecialFolder 方法
GetTempName 方法


GetExtensionName 方法

GetExtensionName 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回字符串，该字符串包含路径最后一个组成部分的扩展名。
语法
object.GetExtensionName(path)

GetExtensionName 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 的名称。
path | 必选。指定路径，用于返回其组成部分的扩展名。

说明
对于网络驱动器，根目录 (\) 也认为是一个组成部分。

如果路径组成部分与 path 参数不匹配，则 GetExtensionName 方法返回零长度字符串 ("")。

下面例子举例说明如何使用 GetExtensionName 方法:

Function GetAnExtension(DriveSpec)
  Dim fso
  Set fso = CreateObject("Scripting.FileSystemObject")
  GetAnExtension = fso.GetExtensionName(Drivespec)
End Function


GetExtensionName 方法

GetExtensionName 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


GetExtensionName 方法

GetExtensionName 方法
请参阅 		Scripting 运行时参考

GetAbsolutePathName 方法
GetBaseName 方法
GetDrive 方法
GetDriveName 方法
GetFile 方法
GetFileName 方法
GetFolder 方法
GetParentFolderName 方法
GetSpecialFolder 方法
GetTempName 方法


GetFile 方法

GetFile 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回与指定路径中某文件相应的 File 对象。
语法
object.GetFile(filespec)

GetFile 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 的名称。
filespec | 必选。filespec 是指定文件的路径（绝对路径或相对路径）。

说明
如果指定文件不存在，则会出现错误。

下面例子举例说明如何使用 GetFile 方法:

Function ShowFileAccessInfo(filespec)
  Dim fso, f, s
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetFile(filespec)
  s = f.Path & "<br>"
  s = s & "Created: " & f.DateCreated & "<br>"
  s = s & "Last Accessed: " & f.DateLastAccessed & "<br>"
  s = s & "Last Modified: " & f.DateLastModified
  ShowFileAccessInfo = s
End Function


GetFile 方法

GetFile 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


GetFile 方法

GetFile 方法
请参阅 		Scripting 运行时参考

GetAbsolutePathName 方法
GetBaseName 方法
GetDrive 方法
GetDriveName 方法
GetExtensionName 方法
GetFileName 方法
GetFolder 方法
GetParentFolderName 方法
GetSpecialFolder 方法
GetTempName 方法


GetFileName 方法

GetFileName 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回指定路径（不是指定驱动器路径部分）的最后一个文件或文件夹。
语法
object.GetFileName(pathspec)

GetFileName 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 的名称。
pathspec | 必选。指定文件的路径（绝对路径或相对路径）。

说明
如果 pathspec 不是以已命名的文件或文件夹结束，则 GetFileName 方法返回零长度字符串 ("")。 下面例子举例说明如何使用 GetFileName 方法:

The following example illustrates use of the GetFileName method:

 Function GetAName(DriveSpec)
  Dim fso
  Set fso = CreateObject("Scripting.FileSystemObject")
  GetAName = fso.GetFileName(DriveSpec)
End Function
注意 GetFileName 方法只能对提供 path 的字符串起作用。它不能试图分析一个路径，也不能检查指定路径是否存在。


GetFileName 方法

GetFileName 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


GetFileName 方法

GetFileName 方法
请参阅 		Scripting 运行时参考

GetAbsolutePathName 方法
GetBaseName 方法
GetDrive 方法
GetDriveName 方法
GetExtensionName 方法
GetFile 方法
GetFolder 方法
GetParentFolderName 方法
GetSpecialFolder 方法
GetTempName 方法


GetFolder 方法

GetFolder 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回与指定的路径中某文件夹相应的 Folder 对象。
语法
object.GetFolder(folderspec)

GetFolder 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 的名称。
folderspec | 必选。folderspec 是指定文件夹的路径（绝对路径或相对路径）。

说明
如果指定文件夹不存在，则会出现错误。

下面例子举例说明如何使用 GetFolder 方法返回文件夹对象:

Sub AddNewFolder(path, folderName)
  Dim fso, f, fc, nf
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetFolder(path)
  Set fc = f.SubFolders
  If folderName <> "" Then
    Set nf = fc.Add(folderName)
  Else
    Set nf = fc.Add("New Folder")
  End If
End Sub


GetFolder 方法

GetFolder 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


GetFolder 方法

GetFolder 方法
请参阅 		Scripting 运行时参考

GetAbsolutePathName 方法
GetBaseName 方法
GetDrive 方法
GetDriveName 方法
GetExtensionName 方法
GetFile 方法
GetFileName 方法
GetParentFolderName 方法
GetSpecialFolder 方法
GetTempName 方法


GetParentFolderName 方法

GetParentFolderName 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回字符串，该字符串包含指定的路径中最后一个文件或文件夹的父文件夹。
语法
object.GetParentFolderName(path)

GetParentFolderName 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 的名称。
path | 必选。指定路径，要返回文件或文件夹的父文件夹名。

说明
如果 path 参数指定的文件或文件夹无父文件夹，则 GetParentFolderName 方法返回零长度字符串 ("")。

下面例子举例说明如何使用 GetParentFolderName 方法:

  Function GetTheParent(DriveSpec)
  Dim fso
  Set fso = CreateObject("Scripting.FileSystemObject")
  GetTheParent = fso.GetParentFolderName(Drivespec)
End Function
注意 GetParentFolderName 方法只能对提供 path 的字符串起作用。它不能试图分析一个路径，也不能检查指定路径是否存在。


GetParentFolderName 方法

GetParentFolderName 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


GetParentFolderName 方法

GetParentFolderName 方法
请参阅 		Scripting 运行时参考

GetAbsolutePathName 方法
GetBaseName 方法
GetDrive 方法
GetDriveName 方法
GetExtensionName 方法
GetFile 方法
GetFileName 方法
GetFolder 方法
GetSpecialFolder 方法
GetTempName 方法


GetSpecialFolder 方法

GetSpecialFolder 方法 		Scripting 运行时参考
Version 3

请参阅 应用于

描述
返回指定的特殊文件夹。
语法
object.GetSpecialFolder(folderspec)

GetSpecialFolder 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 的名称。
folderspec | 必选。要返回的特殊文件夹名称。可以是“设置”部分列出的任何常数。

设置
folderspec 可为下列值：

常数 | 值 | 描述
WindowsFolder | 0 | Windows 文件夹，包含 Windows 操作系统安装的文件。
SystemFolder | 1 | System 文件夹，包含库、字体和设备驱动程序文件。
TemporaryFolder | 2 | Temp 文件夹，用于保存临时文件。可以在 TMP 环境变量中找到该文件夹的路径。

说明
下面例子举例说明如何使用 GetSpecialFolder 方法:
Dim fso, tempfile
Set fso = CreateObject("Scripting.FileSystemObject")

Function CreateTempFile
   Dim tfolder, tname, tfile
   Const TemporaryFolder = 2
   Set tfolder = fso.GetSpecialFolder(TemporaryFolder)
   tname = fso.GetTempName
   Set tfile = tfolder.CreateTextFile(tname)
   Set CreateTempFile = tfile
End Function

Set tempfile = CreateTempFile
tempfile.WriteLine "世界你好"
tempfile.Close


GetSpecialFolder 方法

GetSpecialFolder 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


GetSpecialFolder 方法

GetSpecialFolder 方法
请参阅 		Scripting 运行时参考

GetAbsolutePathName 方法
GetBaseName 方法
GetDrive 方法
GetDriveName 方法
GetExtensionName 方法
GetFile 方法
GetFileName 方法
GetFolder 方法
GetParentFolderName 方法
GetTempName 方法


GetTempName 方法

GetTempName 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回随机生成的临时文件或文件夹的名称，用于执行要求临时文件或文件夹的操作。
语法
object.GetTempName

可选参数 object 应为 FileSystemObject 对象的名称。

说明
GetTempName 方法不创建文件，该方法仅提供临时文件名。CreateTextFile 使用该临时文件名创建文件。

下面例子举例说明如何使用 GetTempName 方法:

Dim fso, tempfile
Set fso = CreateObject("Scripting.FileSystemObject")

Function CreateTempFile
   Dim tfolder, tname, tfile
   Const TemporaryFolder = 2
   Set tfolder = fso.GetSpecialFolder(TemporaryFolder)
   tname = fso.GetTempName
   Set tfile = tfolder.CreateTextFile(tname)
   Set CreateTempFile = tfile
End Function
Set tempfile = CreateTempFile
tempfile.WriteLine "世界你好"
tempfile.Close


GetTempName 方法

GetTempName 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


GetTempName 方法

GetTempName 方法
请参阅 		Scripting 运行时参考

GetAbsolutePathName 方法
GetBaseName 方法
GetDrive 方法
GetDriveName 方法
GetExtensionName 方法
GetFile 方法
GetFileName 方法
GetFolder 方法
GetParentFolderName 方法
GetSpecialFolder 方法


Items 方法

Items 方法 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
返回一个数组，其中包含有 Dictionary 对象中的所有项目。
语法
object.Items

object 应为 Dictionary 对象的名称。

说明
以下代码举例说明如何使用 Items 方法：

Function DicDemo
  Dim a,d,I,s             '创建一些变量
Set d = CreateObject("Scripting.Dictionary")
d.Add "a","Athens"     '添加键和项目
d.Add "b","Belgrade"
d.Add "c","Cairo"
a = d.Items             '获取项目。
For i = 0 To d.Count -1 '循环使用数组。
  s = s & a(i) & "<BR>" ' 创建返回字符串。  Next
  DicDemo = s
End Function


Items ·½·¨

Items ·½·¨
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

Dictionary ¶ÔÏó


Items ·½·¨

Items ·½·¨
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

Add ·½·¨(Dictionary)
Exists ·½·¨
Keys ·½·¨
Remove ·½·¨
RemoveAll ·½·¨


Keys 方法

Keys 方法 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
返回一数组，其中包含有 Dictionary 对象的所有现存键。
语法
object.Keys

object 应为 Dictionary 对象的名称。

说明
下列代码举例说明如何使用 Keys 方法：
 Function DicDemo
Dim a,d,i             '创建一些变量。
Set d = CreateObject("Scripting.Dictionary")
d.Add "a","Athens"     '添加键和项目。
d.Add "b","Belgrade"
d.Add "c","Cairo"
a = d.Keys              '获取键。
For i = 0 To d.Count -1 '循环使用数组。
s = s & a(i) & "<BR>" '返回结果。
  Next
  DicDemo = s
End Function


Keys ·½·¨

Keys ·½·¨
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

Dictionary ¶ÔÏó


Keys ·½·¨

Keys ·½·¨
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

Add (Dictionary)·½·¨
Exists ·½·¨
Items ·½·¨
Remove ·½·¨
RemoveAll ·½·¨


Move 方法

Move 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
将指定的文件或文件夹从某位置移动到另一位置。
语法
object.Move destination

Move 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 File 或 Folder 对象的名称。
destination | 必选。目标位置。表示要将文件或文件夹移动到该位置。不允许使用通配符。

说明
对 File 或 Folder 应用 Move 方法的结果与使用 FileSystemObject.MoveFile 或 FileSystemObject.MoveFolder 执行的操作完全相同。然而，要注意的是 FileSystemObject.MoveFile 或 FileSystemObject.MoveFolder 方法可移动多个文件或文件夹。

下面例子举例说明如何使用 Move 方法:

Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("c:\testfile.txt", True)
MyFile.WriteLine(“这是一个测试。”)
MyFile.Close
Set MyFile = fso.GetFile("c:\testfile.txt")
MyFile.Move "c:\windows\desktop\"


Move 方法

Move 方法
应用于 		Scripting 运行时参考

File 对象
Folder 对象


Move 方法

Move 方法
请参阅 		Scripting 运行时参考

Copy 方法
Delete 方法
MoveFile 方法
MoveFolder 方法
OpenAsTextStream 方法


MoveFile 方法

MoveFile 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
将一个或多个文件从某位置移动到另一位置。
语法
object.MoveFile source, destination

MoveFile 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 的名称。
source | 必选。要移动的文件的路径。source 参数字符串仅可在路径的最后一个组成部分中用通配符。
destination | 必选。指定路径，表示要将文件移动到该目标位置。destination 参数不能包含通配符。

说明
如果 source 包含通配符或 destination 以路径分隔符 (\) 结束，则假定 destination 指定现有文件夹，将匹配文件移动到该文件夹中。否则，假定 destination 是要创建的目标文件。在任一种情况下，移动单个文件时，可能出现以下三种情况：
  • 如果 destination 不存在，则进行文件移动。这是通常会发生的情况。
  • 如果 destination 是已经存在的文件，则会出现错误。
  • 如果 destination 是目录，则会出现错误。
如果在 source 使用通配符，但没有匹配文件时，也会出现错误。MoveFile 方法在遇到出现的第一个错误时停止。该方法不会撤消错误发生前所作的任何更改。

下面例子举例说明如何使用 MoveFile 方法:

Sub MoveAFile(Drivespec)
  Dim fso
  Set fso = CreateObject("Scripting.FileSystemObject")
  fso.MoveFile Drivespec, "c:\windows\desktop\"
End Sub
要点 只有当操作系统支持时，此方法才允许在两个卷之间移动文件。


MoveFile 方法

MoveFile 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


MoveFile 方法

MoveFile 方法
请参阅 		Scripting 运行时参考

CopyFile 方法
DeleteFile 方法
GetFile 方法
GetFileName 方法
Move 方法
MoveFolder 方法
OpenTextFile 方法


MoveFolder 方法

MoveFolder 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
将一个或多个文件夹从某位置移动到另一位置。
语法
object.MoveFolder source, destination

MoveFolder 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 的名称。
source | 必选。要移动的文件夹的路径。source 参数字符串仅可在路径的最后一个组成部分中包含通配符。
destination | 必选。指定路径，表示要将文件夹移动到该目标位置。destination 参数不能包含通配符。

说明
如果 source 包含通配符或 destination 以路径分隔符 (\) 结束，则假定 destination 指定现有文件夹，将匹配文件移动到该文件夹中。否则，假定 destination 是要创建的目标文件夹。在任一种情况下，移动单个文件夹时，可能会发生以下三种情况：
  • 如果 destination 不存在，则移动文件夹。这是通常会发生的情况。
  • 如果 destination 是已经存在的文件，则会出现错误。
  • 如果 destination 是目录，则会出现错误。
如果 source 使用通配符，但没有匹配文件夹时，则会出现错误。MoveFolder 方法在遇到出现的第一个错误时停止。该方法不会撤消错误发生前所作的任何更改。

下面例子举例说明如何使用 MoveFolder 方法:

Sub MoveAFolder(Drivespec)
  Dim fso
  Set fso = CreateObject("Scripting.FileSystemObject")
  fso.MoveFolder Drivespec, "c:\windows\desktop\"
End Sub
要点 只有当操作系统支持时，此方法才允许在两个卷之间移动文件夹。


MoveFolder 方法

MoveFolder 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


MoveFolder 方法

MoveFolder 方法
请参阅 		Scripting 运行时参考

CopyFolder 方法
CreateFolder 方法
DeleteFolder 方法
GetFolder 方法
GetParentFolderName 方法
Move 方法
MoveFile 方法


OpenAsTextStream 方法

OpenAsTextStream 方法 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
打开指定的文件并返回一个 TextStream 对象，此对象用于对文件进行读、写或追加操作。
语法
object.OpenAsTextStream([iomode, [format]])

OpenAsTextStream 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 File 对象的名称。
iomode | 可选。输入/输出模式，是下列三个常数之一：ForReading、ForWriting 或 ForAppending。
format | 可选。三个 Tristate 值之一，指出以何种格式打开文件。忽略此参数，则文件以 ASCII 格式打开。

设置
iomode 参数可为下列设置之一：

常数 | 值 | 描述
ForReading | 1 | 以只读模式打开文件。不能对此文件进行写操作。
ForWriting | 2 | 以可读写模式打开文件。如果已存在同名的文件，则覆盖旧的文件。
ForAppending | 8 | 打开文件并在文件末尾进行写操作。

format 参数可为下列设置之一：

常数 | 值 | 描述
TristateUseDefault | -2 | 以系统默认格式打开文件。
TristateTrue | -1 | 以 Unicode 格式打开文件。
TristateFalse | 0 | 以 ASCII 格式打开文件。

说明
OpenAsTextStream 方法可提供与 FileSystemObject 对象的 OpenTextFile 方法相同的功能。另外，使用 OpenAsTextStream 方法可对文件进行写操作。

以下代码举例说明如何使用 OpenAsTextStream 方法：

Function TextStreamTest
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
    Dim fso, f, ts
    Set fso = CreateObject("Scripting.FileSystemObject")
    fso.CreateTextFile "test1.txt"            '创建一个文件。
    Set f = fso.GetFile("test1.txt")
    Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault)
    ts.Write "嗨，你好！"
    ts.Close
    Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)
  TextStreamTest = ts.ReadLine
  ts.Close
End Function


OpenAsTextStream 方法

OpenAsTextStream 方法
应用于 		Scripting 运行时参考

File 对象


OpenAsTextStream 方法

OpenAsTextStream 方法
请参阅 		Scripting 运行时参考

Copy 方法
CreateTextFile 方法
Delete 方法
Move 方法
OpenTextFile 方法


OpenTextFile 方法

OpenTextFile 方法 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
打开指定的文件并返回一个 TextStream 对象，可以读取、写入此对象或将其追加到文件。
语法
object.OpenTextFile(filename[, iomode[, create[, format]]])

OpenTextFile 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 FileSystemObject 对象的名称。
filename | 必选。字符串表达式，指明要打开的文件名称。
iomode | 可选。输入/输出模式，是下列三个常数之一：ForReading，ForWriting,或 ForAppending。
create | 可选。Boolean 值，指出当指定的 filename 不存在时是否能够创建新文件。允许创建新文件时为 True，否则为 False。默认值为 False。
format | 可选。三个 Tristate 值之一，指出以何种格式打开文件。若忽略此参数，则文件以 ASCII 格式打开。

设置
iomode 参数可为下列设置之一：

常数 | 值 | 描述
ForReading | 1 | 以只读模式打开文件。不能对此文件进行写操作。
ForWriting | 2 | 以只写方式打开文件。不能对此文件进行读操作。
ForAppending | 8 | 打开文件并在文件末尾进行写操作。

〈P〉 format 参数可为下列设置之一：

常数 | 值 | 描述
TristateUseDefault | -2 | 以系统默认格式打开文件。
TristateTrue | -1 | 以 Unicode 格式打开文件。
TristateFalse | 0 | 以 ASCII 格式打开文件。

说明
以下代码举例说明如何使用 OpenTextFile 方法打开写文件：
Sub OpenTextFileTest
  Const ForReading = 1, ForWriting = 2, ForAppending = 8
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile("c:\testfile.txt", For Writing, True)
  f.Write "嗨，你好！"
  f.Close
End Sub


OpenTextFile 方法

OpenTextFile 方法
应用于 		Scripting 运行时参考

FileSystemObject 对象


OpenTextFile 方法

OpenTextFile 方法
请参阅 		Scripting 运行时参考

OpenAsTextStream 方法
CreateTextFile 方法


Raise 方法

Raise 方法 		语言参考
版本 1

请参阅 应用于

描述
生成运行时错误。
语法
object.Raise(number, source, description, helpfile, helpcontext)

Raise 方法的语法有以下部分：

参数 | 描述
object | 应为 Err 对象。
number | Long 整数子类型，标识错误性质。VBScript 错误（有 VBScript 定义和用户定义两种错误）的范围在 0-65535 之间。
source | 命名最初产生错误的对象或应用程序的字符串表达式。当为 Automation 对象设置此属性时，请使用窗体 project.class。如未作任何指定，则使用当前 VBScript 项目的程序设计 ID。
description | 描述错误的字符串表达式。如未指定，则检查 number 的值。如可将其映射为 VBScript 运行时错误代码，则将 VBScript 提供的字符串作为 description 使用。如没有与 number 对应的 VBScript 错误，则使用通用错误信息。
helpfile | Help 文件的完整合法的路径，在该 Help 文件中可找到此错误的帮助信息。如未指定，则 VBScript 将使用 VBScript Help 文件的完整合法的驱动器、路径和文件名。
helpcontext | 上下文 ID，标识 helpfile 中提供错误帮助的主题。如果省略，则使用与 number 属性对应的错误的 VBScript Help 文件上下文 ID（如果存在）。

说明
除了 number 以外的所有参数都是可选的。如果使用 Raise，而不指定某些参数，且 Err 对象的属性设置含有未清除的值，则这些值将成为错误的值。

在 Automation 对象中设置错误代码的 number 属性时，请向常数 vbObjectError 添加错误代码编号。例如，要生成错误号 1050，可将 number 属性赋值为 vbObjectError + 1050 。

下面例子举例说明如何使用 Raise 方法:

On Error Resume Next
Err.Raise 6  '产生溢出错误。
MsgBox ("Error # " & CStr(Err.Number) & " " & Err.Description)
Err.Clear    '清除错误。


Raise ·½·¨

Raise ·½·¨
Ó¦ÓÃÓÚ 		ÓïÑÔ²Î¿¼

Err ¶ÔÏó


Raise ·½·¨

Raise ·½·¨
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Clear ·½·¨
ÊôÐÔÃèÊö
Err ¶ÔÏó
Êý×ÖÊôÐÔ
Source ÊôÐÔ


Read 方法

Read 方法 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
从 TextStream 文件中读入指定数目的字符并返回结果字符串。
语法
object.Read(characters)

Read 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 TextStream 对象的名称。
characters | 必选。要从文件读的字符数目。

说明

下面例子举例说明如何使用 Read 方法从文件中读取五个字符并返回字符串结果:
Function ReadTextFileTest
  Const ForReading = 1, ForWriting = 2, ForAppending = 8
  Dim fso, f, Msg
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile("c:\testfile.txt", ForWriting, True)
  f.Write "世界你好!"
  Set f = fso.OpenTextFile("c:\testfile.txt", ForReading)
  ReadTextFileTest =  f.Read(5)
End Function


Read ·½·¨

Read ·½·¨
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

TextStream ¶ÔÏó


ReadAll 方法

ReadAll 方法 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
读入全部 TextStream 文件并返回结果字符串。
语法
object.ReadAll

object 应为 TextStream 对象的名称。

说明
对于大文件，使用 ReadAll 方法浪费内存资源。应该使用其他技术输入文件，例如按行读文件。
Function ReadAllTextFile
  Const ForReading = 1, ForWriting = 2
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile("c:\testfile.txt", ForWriting, True)
  f.Write "世界你好!"
  Set f = fso.OpenTextFile("c:\testfile.txt", ForReading)
  ReadAllTextFile =  f.ReadAll
End Function


ReadAll ·½·¨

ReadAll ·½·¨
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

TextStream ¶ÔÏó


ReadAll ·½·¨

ReadAll ·½·¨
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

Close ·½·¨
Read ·½·¨
ReadLine ·½·¨
Skip ·½·¨
SkipLine ·½·¨
Write ·½·¨
WriteLine ·½·¨
WriteBlankLines ·½·¨


Read ·½·¨

Read ·½·¨
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

Close ·½·¨
ReadAll ·½·¨
ReadLine ·½·¨
Skip ·½·¨
SkipLine ·½·¨
Write ·½·¨
WriteLine ·½·¨
WriteBlankLines ·½·¨


ReadLine 方法

ReadLine 方法 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
从 TextStream 文件中读入一整行字符（直到下一行，但不包括下一行字符），并返回结果字符串。
语法
object.ReadLine

object 应为 TextStream 对象的名称。

说明
下面例子说明如何使用 ReadLine 方法从 TextStream 文件中读取字符并返回字符串:
Function ReadLineTextFile
  Const ForReading = 1, ForWriting = 2
  Dim fso, MyFile
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set MyFile = fso.OpenTextFile("c:\testfile.txt", ForWriting, True)
  MyFile.WriteLine “嗨，你好！”  MyFile.WriteLine "The quick brown fox"
  MyFile.Close
  Set MyFile = fso.OpenTextFile("c:\testfile.txt", ForReading)
  ReadLineTextFile = MyFile.ReadLine	' Returns “嗨，你好！”
End Function


ReadLine ·½·¨

ReadLine ·½·¨
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

TextStream ¶ÔÏó


ReadLine ·½·¨

ReadLine ·½·¨
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

Close ·½·¨
Read ·½·¨
ReadAll ·½·¨
Skip ·½·¨
SkipLine ·½·¨
Write ·½·¨
WriteLine ·½·¨
WriteBlankLines ·½·¨


Remove 方法

Remove 方法 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
从 Dictionary 对象中删除键和项目对。
语法
object.Remove(key)

Remove 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 Dictionary 对象的名称。
key | 必选。与要从 Dictionary 对象中删除的键和项目对相关联的 Key。

说明
如果指定的键和项目对不存在，则会出现错误。

下列代码示范如何使用 Remove 方法：

Dim a, d             '创建变量。
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens"     '添加键和项目。
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
...
a = d.Remove("b")       '删除第二个项目对


RemoveAll ·½·¨

Remove ·½·¨
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

Dictionary ¶ÔÏó


RemoveAll 方法

RemoveAll 方法 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
RemoveAll 方法删除 Dictionary 对象中的所有键和项目对。
语法
object.RemoveAll

object 应为 Dictionary 对象的名称。

说明
下列代码举例说明如何使用 RemoveAll 方法：
Dim a,d,i             '创建一些变量。
Set d = CreateObject("Scripting.Dictionary")
d.Add "a","Athens"     '添加键和项目。
d.Add "b","Belgrade"
d.Add "c","Cairo"
...
a = d.RemoveAll         '清除 dictionary。


RemoveAll ·½·¨

RemoveAll ·½·¨
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

Dictionary ¶ÔÏó


RemoveAll ·½·¨

RemoveAll ·½·¨
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

Add ·½·¨(Dictionary)
Exists ·½·¨
Items ·½·¨
Keys ·½·¨
Remove ·½·¨


Remove ·½·¨

Remove ·½·¨
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

Add ·½·¨(Dictionary)
Exists ·½·¨
Items ·½·¨
Keys ·½·¨
RemoveAll ·½·¨


Replace 方法

.
Replace 方法 		语言参考
版本 5

请参阅 应用于

描述
替换在正则表达式查找中找到的文本。
语法
object.Replace(string1, string2)

Replace 方法的语法包含以下几个部分：

部分 | 描述
object | 必需的。总是一个 RegExp 对象的名称。
string1 | 必需的。string1 是将要进行文本替换的字符串。
string2 | 必需的。 string2 是替换文本字符串。

说明
被替换的文本的实际模式是通过 RegExp 对象的 Pattern 属性设置的。

Replace 方法返回 string1 的副本，其中的 RegExp.Pattern 文本已经被替换为 string2。如果没有找到匹配的文本，将返回原来的 string1 的副本。

下面的例子说明了 Replace 方法的用法：

Function ReplaceTest(patrn, replStr)
  Dim regEx, str1					' 建立变量。
  str1 = "The quick brown fox jumped over the lazy dog."
  Set regEx = New RegExp				' 建立正则表达式。
  regEx.Pattern = patrn				' 设置模式。
  regEx.IgnoreCase = True				' 设置是否区分大小写。
  ReplaceTest = regEx.Replace(str1, replStr)	'  作替换。
End Function

MsgBox(ReplaceTest("fox", "cat"))
' 将 'fox' 替换为 'cat'。
；另外，Replace 方法在模式中替换 subexpressions 。 下面对以前示例中函数的调用，替换了原字符串中的所有字对：
MsgBox(ReplaceText("(\S+)(\s+)(\S+)", "$3$2$1"))	' Swap pairs of words.


Replace 方法

Replace 方法
应用于 		语言参考

RegExp 对象


Replace 方法

Replace 方法
请参阅 		语言参考

Execute 方法
Test 方法


Skip 方法

Skip 方法 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
读取 TextStream 文件时跳过指定数目的字符。
语法
object.Skip(characters)

Skip 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 TextStream 对象的名称。
characters | 必选。读取文件时跳过的字符数目。

说明
放弃跳过的字符。

下面例子说明如何利用 Skip 方法在阅读文本文件前跳过开始的六个字符:

Function SkipTextFile
  Const ForReading = 1, ForWriting = 2
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile("c:\testfile.txt", ForWriting, True)
  f.Write "嗨，你好!"
  Set f = fso.OpenTextFile("c:\testfile.txt", ForReading)
  f.Skip(6)
  SkipTextFile =  f.ReadLine
End Function


Skip 方法

Skip 方法
应用于 		Scripting 运行时参考

TextStream 对象


Skip 方法

Skip 方法
请参阅 		Scripting 运行时参考

Close 方法
Read 方法
ReadAll 方法
ReadLine 方法
SkipLine 方法
Write 方法
WriteLine 方法
WriteBlankLines 方法


SkipLine 方法

SkipLine 方法 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
当读到 TextStream 文件时，跳过下一行。
语法
object.SkipLine

object 应为 TextStream 对象名称。

说明
跳过一行意味着读并放弃本行所有字符并包括下一新行字符内容。 如果文件不是以读方式打开则会出现错误。

下面例子举例说明如何使用 SkipLine 方法:

Function SkipLineInFile
  Const ForReading = 1, ForWriting = 2
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile("c:\testfile.txt", ForWriting, True)
  f.Write "嗨，你好!" & vbCrLf & "VB脚本很有趣!"
  Set f = fso.OpenTextFile("c:\testfile.txt", ForReading)
  f.SkipLine
  SkipLineInFile = f.ReadLine
End Function


SkipLine ·½·¨

SkipLine ·½·¨
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

TextStream ¶ÔÏó


SkipLine ·½·¨

SkipLine ·½·¨
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

Close ·½·¨
Read ·½·¨
ReadAll ·½·¨
ReadLine ·½·¨
Skip ·½·¨
Write ·½·¨
WriteLine ·½·¨
WriteBlankLines ·½·¨


Test 方法

.
Test 方法 		语言参考
版本 5

请参阅 应用于

描述
对指定的字符串执行一个正则表达式搜索，并返回一个 Boolean 值指示是否找到匹配的模式。
语法
object.Test(string)

Execute 方法的语法包括以下几个部分：

部分 | 描述
object | 必需的。总是一个 RegExp 对象的名称。
string | 必需的。要执行正则表达式搜索的文本字符串。

说明
正则表达式搜索的实际模式是通过RegExp对象的Pattern属性来设置的。RegExp.Global属性对Test方法没有影响。

如果找到了匹配的模式，Test方法返回True；否则返回False。

下面的代码说明了Test 方法的用法：

Function RegExpTest(patrn, strng)
  Dim regEx, retVal				' 建立变量。
  Set regEx = New RegExp			' 建立正则表达式。
  regEx.Pattern = patrn			' 设置模式。
  regEx.IgnoreCase = False		' 设置是否区分大小写。
  retVal = regEx.Test(strng)		' 执行搜索测试。
  If retVal Then
    RegExpTest = "找到一个或多个匹配。"
  Else
    RegExpTest = "未找到匹配。"
  End If
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))


Test 方法

Test 方法
应用于 		语言参考

RegExp 对象


Test 方法

Test 方法
请参阅 		语言参考

Execute 方法
Replace 方法


Write 方法

Write 方法 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
向 TextStream 文件写入指定字符串。
语法
object.Write(string)

Write 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 TextStream 对象的名称。
string | 可选。要写入文件的文本。

说明
指定的字符串被写入文件中，字符串之间没有插入空格或字符。使用 WriteLine 方法写入新行字符或以新行字符结束的字符串。

下面例子举例说明如何使用 Write 方法:

Function WriteToFile
  Const ForReading = 1, ForWriting = 2
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile("c:\testfile.txt", ForWriting, True)
  f.Write "嗨，你好!"
  Set f = fso.OpenTextFile("c:\testfile.txt", ForReading)
  WriteToFile =  f.ReadLine
End Function


Write ·½·¨

Write ·½·¨
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

TextStream ¶ÔÏó


WriteBlankLines 方法

WriteBlankLines 方法 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
在 TextStream 文件中写入指定数目的新行字符。
语法
object.WriteBlankLines(lines)

WriteBlankLines 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 TextStream 对象的名称。
lines | 必选。要向文件写入的新行字符数目。

说明
下面例子举例说明如何使用 WriteBlankLines 方法:

Function WriteBlankLinesToFile
  Const ForReading = 1, ForWriting = 2
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile("c:\testfile.txt", ForWriting, True)
  f.WriteBlankLines 2
  f.WriteLine "嗨，你好!"
  Set f = fso.OpenTextFile("c:\testfile.txt", ForReading)
  WriteBlankLinesToFile = f.ReadAll
End Function


WriteBlankLines ·½·¨

WriteBlankLines ·½·¨
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

TextStream ¶ÔÏó


WriteBlankLines ·½·¨

WriteBlankLines ·½·¨
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

Close ·½·¨
Read ·½·¨
ReadAll ·½·¨
ReadLine ·½·¨
Skip ·½·¨
SkipLine ·½·¨
Write ·½·¨
WriteLine ·½·¨


Write ·½·¨

Write ·½·¨
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

Close ·½·¨
Read ·½·¨
ReadAll ·½·¨
ReadLine ·½·¨
Skip ·½·¨
SkipLine ·½·¨
WriteLine ·½·¨
WriteBlankLines ·½·¨


WriteLine 方法

WriteLine 方法 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
向 TextStream 文件写入指定字符串和新行字符。
语法
object.WriteLine([string])

WriteLine 方法的语法有以下部分：

部分 | 描述
object | 必选。应为 TextStream 对象的名称。
string | 可选。要写入文件的文本。如果省略，将向文件写入新行字符。

说明
下面例子举例说明如何使用 WriteLine 方法:

Function WriteLineToFile
  Const ForReading = 1, ForWriting = 2
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile("c:\testfile.txt", ForWriting, True)
  f.WriteLine "嗨，你好!"
  f.WriteLine "VBScript 很有趣!"
  Set f = fso.OpenTextFile("c:\testfile.txt", ForReading)
  WriteLineToFile = f.ReadAll
End Function


WriteLine ·½·¨

WriteLine ·½·¨
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

TextStream ¶ÔÏó


WriteLine ·½·¨

WriteLine ·½·¨
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

Close ·½·¨
Read ·½·¨
ReadAll ·½·¨
ReadLine ·½·¨
Skip ·½·¨
SkipLine ·½·¨
Write ·½·¨
WriteBlankLines ·½·¨


Class 对象

Class 对象 		语言参考
版本 5

请参阅 事件

描述
使用 Class 语句创建的对象。提供了对类的各种事件的访问。
说明
不允许显式地将一个变量声明为 Class 类型。在 VBScript 的上下文中，“类对象”一词指的是用 VBScript Class 语句定义的任何对象。

在使用 Class 语句建立了类定义之后，可以用下面的形式创建类的一个实例：

Dim X
Set X = New classname
由于 VBScript 是一种后期约束型语言，下面的做法是不允许的：

Dim X as New classname
或
Dim X
X = New classname
或
Set X = New Scripting.FileSystemObject


Class 对象

Class 对象
请参阅 		语言参考

Class 语句
Dim 语句
Set 语句


Class 对象

Class 对象
事件 		语言参考

Initialize 事件
Terminate 事件


Dictionary 对象

Dictionary 对象 		Scripting 运行时参考
版本 2

请参阅 属性 方法

描述
保存数据键和项目对的对象。
说明
Dictionary 对象与 PERL 关联数组是等价的。项目（可以是任何形式的数据）被保存在数组中。每项都与唯一的键相关联。键值用于检索单个项目，通常是整数或字符串，但不能为数组。

下面代码示范如何创建 Dictionary 对象：

Dim d                   '创建一个变量。
Set d = CreateObject("Scripting.Dictionary")
d.Add "a", "Athens"     '添加键和项目。
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
...


Dictionary ¶ÔÏó

Dictionary ¶ÔÏó
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

FileSystemObject ¶ÔÏó
TextStream ¶ÔÏó


Dictionary ¶ÔÏó

Dictionary ¶ÔÏó
·½·¨ 		Scripting ÔËÐÐÊ±²Î¿¼

Add ·½·¨(Dictionary)
Exists ·½·¨
Items ·½·¨
Keys ·½·¨
Remove ·½·¨
RemoveAll ·½·¨


Dictionary ¶ÔÏó

Dictionary ¶ÔÏó
ÊôÐÔ 		Scripting ÔËÐÐÊ±²Î¿¼

CompareMode ÊôÐÔ
Count ÊôÐÔ
Item ÊôÐÔ
Key ÊôÐÔ


Drive 对象

Drive 对象 		Scripting 运行时参考
版本 3

请参阅 属性 方法

描述
提供对磁盘驱动器或网络共享的属性的访问。
说明
以下代码举例说明如何使用 Drive 对象访问驱动器的属性：
Function ShowFreeSpace(drvPath)
Dim fso, d, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set d = fso.GetDrive(fso.GetDriveName(drvPath))
    s = "驱动器 " & UCase(drvPath) & " - "
    s = s & d.VolumeName  & "<BR>"
    s = s & "可用空间： " & FormatNumber(d.FreeSpace/1024, 0)
s = s & "KB"
ShowFreeSpace = s
End Function


Drive 对象

Drive 对象
请参阅 		Scripting 运行时参考

Drives 集合
File 对象
Files 集合
Folder 对象
Folders 集合
GetDrive 方法


Drive 对象

Drive 对象
方法 		Scripting 运行时参考

Drive 对象无任何方法。


Drive 对象

Drive 对象
属性 		Scripting 运行时参考

AvailableSpace 属性
DriveLetter 属性
DriveType 属性
FileSystem 属性
FreeSpace 属性
IsReady 属性
Path 属性
RootFolder 属性
SerialNumber 属性
ShareName 属性
TotalSize 属性
VolumeName 属性


Err 对象

Err 对象 		语言参考
版本 1

请参阅 属性 方法

描述
含有关于运行时错误的信息。接受用于生成和清除运行时错误的 Raise 和 Clear 方法。
说明
Err 对象是一个具有全局范围 —的固有对象：不必在您的代码中创建它的示例。Err的属性被一个错误 —的生成器设置：Visual Basic,自动对象，或 VBScript 程序。

Err 对象的默认属性是 number。Err.Number 含有一个整数，且可由 Automation 对象使用以返回 SCODE。

当发生运行时错误时，Err 的属性由标识错误的唯一信息以及可用于处理它的信息填充。要在代码中生成运行时错误，请用 Raise 方法。

Err 对象属性被重新设置为零或零长度字符串 ("")。Clear 方法可被用于显式地重新设置 Err。

下面的示例说明了 Err 对象的用法：

On Error Resume Next
Err.Raise 6  '产生溢出错误。
MsgBox ("Error # " & CStr(Err.Number) & " " & Err.Description)
Err.Clear    '清除错误。


Err ¶ÔÏó

Err ¶ÔÏó
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Error Messages
On Error Statement


Err ¶ÔÏó

Err ¶ÔÏó
·½·¨ 		ÓïÑÔ²Î¿¼

Clear ·½·¨
Raise ·½·¨


Err ¶ÔÏó

Err ¶ÔÏó
ÊôÐÔ 		ÓïÑÔ²Î¿¼

Description ÊôÐÔ
HelpContext ÊôÐÔ
HelpFile ÊôÐÔ
Number ÊôÐÔ
Source ÊôÐÔ


File 对象

File 对象 		Scripting 运行时参考
版本 3

请参阅 属性 方法

描述
提供对文件的所有属性的访问。
说明
以下代码举例说明如何获得一个 File 对象并查看它的属性：
 Function ShowDateCreated(filespec)
   Dim fso,f
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFile(filespec)
  ShowDateCreated = f.DateCreated
End Function


File 对象

File 对象
请参阅 		Scripting 运行时参考

Drive 对象
Drives 集合
Files 集合
Folder 对象
Folders 集合


File 对象

File 对象
方法 		Scripting 运行时参考

Copy 方法
Delete 方法
Move 方法
OpenAsTextStream 方法


File 对象

File 对象
属性 		Scripting 运行时参考

Attributes 属性
DateCreated 属性
DateLastAccessed 属性
DateLastModified 属性
Drive 属性
Name 属性
ParentFolder 属性
Path 属性
ShortName 属性
ShortPath 属性
Size 属性
Type 属性


FileSystemObject 对象

FileSystemObject 对象 		Scripting 运行时参考
版本 2

请参阅 属性 方法

描述
提供对计算机文件系统的访问。
说明
以下代码举例说明如何使用 FileSystemObject 对象返回一个 TextStream 对象，此对象可以被读取或写入：
Dim fso, MyFile Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile= fso.CreateTextFile("c:\testfile.txt", True)
MyFile.WriteLine("这是一个测试。")
MyFile.Close
以前代码中，CreateObject 函数返回 FileSystemObject 对象 (fso)。CreateTextFile 方法创建一个文件作为 TextStream 对象 (a)，然后 WriteLine 方法在此文件中写入一行文本。最后 Close 方法刷新缓冲区并关闭文件。


FileSystemObject 对象

FileSystemObject 对象
请参阅 		Scripting 运行时参考

CreateObject 函数
Dictionary 对象
Drive 对象
Drives 集合
File 对象
FileSystem 属性
Files 集合
Folder 对象
Folders 集合
TextStream 对象


FileSystemObject 对象

FileSystemObject 对象
方法 		Scripting 运行时参考

BuildPath 方法
CopyFile 方法
CopyFolder 方法
CreateFolder 方法
CreateTextFile 方法
DeleteFile 方法
DeleteFolder 方法
DriveExists 方法
FileExists 方法
FolderExists 方法
GetAbsolutePathname 方法
GetBaseName 方法
GetDrive 方法
GetDriveName 方法
GetExtensionName 方法
GetFile 方法
GetFileName 方法
GetFolder 方法
GetParentFolderName 方法
GetSpecialFolder 方法
GetTempName 方法
MoveFile 方法
MoveFolder 方法
OpenTextFile 方法


FileSystemObject 对象

FileSystemObject 对象
属性 		Scripting 运行时参考

Drives 属性


Folder 对象

Folder 对象 		Scripting 运行时参考
版本 3

请参阅 属性 方法

描述
提供对文件夹所有属性的访问。
说明
以下代码举例说明如何获得 Folder 对象并查看它的属性：

Function ShowDateCreated(folderspec)
    Dim fso, f,
    Set fso = CreateObject("Scripting.FileSystemObject")
   Set f = fso.GetFolder(folderspec)
  ShowDateCreated = f.DateCreated
End Function


Folder 对象

Folder 对象
请参阅 		Scripting 运行时参考

Drive 对象
Drives 集合
File 对象
Files 集合
Folders 集合


Folder 对象

Folder 对象
方法 		Scripting 运行时参考

Copy 方法
Delete 方法
Move 方法
CreateTextFile 方法


Folder 对象

Microsoft(R) Visual Basic&rg; Scripting Edition
Folder 对象
属性 		Scripting 运行时参考

Attributes 属性
Count 属性
DateCreated 属性
DateLastAccessed 属性
DateLastModified 属性
Drive 属性
Name 属性
ParentFolder 属性
Path 属性
ShortName 属性
ShortPath 属性
Size 属性
SubFolders 属性
Type 属性


Match 对象

Match 对象 		语言参考
版本 5

请参阅 属性

描述
提供了对正则表达式匹配的只读属性的访问。
说明
Match 对象只能通过 RegExp 对象的 Execute 方法来创建，该方法实际上返回了 Match 对象的集合。所有的 Match 对象属性都是只读的。

在执行正则表达式时，可能产生零个或多个 Match 对象。每个 Match 对象提供了被正则表达式搜索找到的字符串的访问、字符串的长度，以及找到匹配的索引位置等。

下面的代码说明了 Match 对象的用法：

Function RegExpTest(patrn, strng)
  Dim regEx, Match, Matches		' 建立变量。
  Set regEx = New RegExp			' 建立正则表达式。
  regEx.Pattern = patrn			' 设置模式。
  regEx.IgnoreCase = True			' 设置是否区分大小写。
  regEx.Global = True			' 设置全局替换。
  Set Matches = regEx.Execute(strng)	' 执行搜索。
  For Each Match in Matches		' 遍历 Matches 集合。
    RetStr = RetStr & "Match " & I & " found at position "
    RetStr = RetStr & Match.FirstIndex & ". Match Value is "'
    RetStr = RetStr & Match.Value & "'." & vbCRLF
  Next
  RegExpTest = RetStr
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))


Match 对象

Match 对象
请参阅 		语言参考

Matches 集合
RegExp 对象


Match 对象

Match 对象
属性 		语言参考

FirstIndex 属性
Length 属性
Value 属性


正则表达式(RegExp)对象

RegExp 对象 		语言参考
版本 5

请参阅 方法 属性

描述
提供简单的正则表达式支持功能。
说明
下面的代码说明了RegExp对象的用法：

Function RegExpTest(patrn, strng)
  Dim regEx, Match, Matches		' 建立变量。
  Set regEx = New RegExp			' 建立正则表达式。
  regEx.Pattern = patrn			' 设置模式。
  regEx.IgnoreCase = True			' 设置是否区分字符大小写。
  regEx.Global = True			' 设置全局可用性。
  Set Matches = regEx.Execute(strng)	' 执行搜索。
  For Each Match in Matches		' 遍历匹配集合。
    RetStr = RetStr & "Match found at position "
    RetStr = RetStr & Match.FirstIndex & ". Match Value is '"
    RetStr = RetStr & Match.Value & "'." & vbCRLF
  Next
  RegExpTest = RetStr
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))


RegExp 对象

RegExp 对象
请参阅 		语言参考

Match 对象
Matches 集合


RegExp 对象

RegExp 对象
方法 		语言参考

Execute 方法
Replace 方法
Test 方法


RegExp 对象

RegExp 对象
属性 		语言参考

Global 属性
IgnoreCase 属性
Pattern 属性


TextStream 对象

TextStream 对象 		Scripting 运行时参考
版本 2

请参阅 属性 方法

描述
有助于顺序访问文件。
说明
在下列代码中，a 是由 FileSystemObject 中的 CreateTextFile 方法返回的 TextStream 对象：
Dim fso, MyFile

Set fso = CreateObject("Scripting.FileSystemObject")
SetMyFile= fso.CreateTextFile("c:\testfile.txt", True)
MyFileWriteLine("这是一个测试。")
MyFileClose
WriteLine 和 Close 是 TextStream 对象的两个方法。


TextStream ¶ÔÏó

TextStream ¶ÔÏó
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

Dictionary ¶ÔÏó
FileSystemObject ¶ÔÏó


TextStream ¶ÔÏó

TextStream ¶ÔÏó
·½·¨ 		Scripting ÔËÐÐÊ±²Î¿¼

Close ·½·¨
Read ·½·¨
ReadAll ·½·¨
ReadLine ·½·¨
Skip ·½·¨
SkipLine ·½·¨
Write ·½·¨
WriteLine ·½·¨
WriteBlankLines ·½·¨


TextStream ¶ÔÏó

TextStream ¶ÔÏó
ÊôÐÔ 		Scripting ÔËÐÐÊ±²Î¿¼

AtEndOfLine ÊôÐÔ
AtEndOfStream ÊôÐÔ
Column ÊôÐÔ
Line ÊôÐÔ


运算符(+)

+ 运算符 		Scripting 运行时参考
版本 1

请参阅

描述
计算两个数之和。
语法
result = expression1 + expression2

+ 运算符的语法有以下部分：

部分 | 描述
result | 任意数值变量。
expression1 | 任意表达式。
expression2 | 任意表达式。

说明
虽然也可以使用 + 运算符连接两个字符串，但是您仍应使用 & 运算符进行字符串的连接以避免混淆，提供易理解的代码。

这是因为在使用 + 运算符时，有可能无法确定是做加法还是做字符串连接。

表达式的基本子类型决定了 + 运算符所做的操作，如下表所示：

如果 | 则
两个表达式都是数值 | 相加
两个表达式都是字符串 | 连接
一个表达式是数值，另一个表达式是字符串 | 相加

如果一个表达式或两个表达式都为 Null 表达式，则 result 为 Null。如果两个表达式都为 Empty，则 result 为 Integer 子类型。但是如果一个表达式为 Empty，则返回另一个表达式作为 result。


ÔËËã·û (+)

+ ÔËËã·û
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

& ÔËËã·û
- ÔËËã·û
ËãÊõÔËËã·û
Áª½ÓÔËËã·û
ÔËËã·ûÓÅÏÈ¼¶
ÔËËã·û¸ÅÊö


And 运算符

And 运算符 		语言参考
版本 1

请参阅

描述
对两个表达式进行逻辑“与”运算。
语法
result = expression1 And expression2

And 运算符的语法有以下部分：

部分 | 描述
result | 任意数值变量。
expression1 | 任意表达式。
expression2 | 任意表达式。

说明
当且仅当两个表达式均为 True，则 result 为 True。如果任一表达式为 False，则 result 为 False。下表说明如何确定 result：

如果 expression1 为 | 且 expression2 为 | 则 result 为
True | True | True
True | False | False
True | Null | Null
False | True | False
False | False | False
False | Null | False
Null | True | Null
Null | False | False
Null | Null | Null

And 运算符还对两个数值表达式中位置相同的位执行逐位比较，并根据下表设置 result 中相应的位：

如 expression1 中的位是 | 且 expression2 中的位是 | 则 result 为
0 | 0 | 0
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1


And ÔËËã·û

And ÔËËã·û
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Âß¼ÔËËã·û
Not ÔËËã·û
ÔËËã·ûÓÅÏÈ¼¶
ÔËËã·û¸ÅÊö
Or ÔËËã·û
Xor ÔËËã·û


赋值运算符 (=)

= 运算符 		语言参考
版本 1

请参阅

描述
赋值给一个变量或属性。
语法
variable = value

= 运算符语法包含下面的部分：

部分 | 描述
variable | 任何变量或可写的属性。
value | 任何数值或字符串文字、常数、或表达式。

说明
等号左边的名称可以是一个简单的标量变量或数组的一个元素。等号左边的属性仅可以是那些在运行时可写的属性。


¸³ÖµÔËËã·û (=)

= ÔËËã·û
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

±È½ÏÔËËã·û
ÔËËã·ûÓÅÏÈ¼¶
ÔËËã·û×Ü½á
Set Óï¾ä


连接运算符 (&)

& 运算符 		语言参考
版本 1

请参阅

描述
强制两个表达式进行字符串连接。
语法
result = expression1 & expression2

& 运算符的语法有以下部分：

部分 | 描述
result | 任意变量。
expression1 | 任意表达式。
expression2 | 任意表达式。

说明
任一 expression 不是字符串时，它将被转换为 String 子类型。如果两个表达式都为 Null，result 也为 Null。然而，如果仅有一个 expression 为 Null，则它和其他表达式连接时，按零长度字符串("") 处理。任何表达式为 Empty 时也按零长度字符串处理。


& ÔËËã·û

& ÔËËã·û
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Á¬½ÓÔËËã·û
ÔËËã·ûÓÅÏÈ¼¶
ÔËËã·û¸ÅÊö


除运算符 (/)

/ 运算符 		语言参考
版本 1

请参阅

描述
两个数值相除并返回以浮点数表示的结果。
语法
result = number1/number2

/ 运算符的语法有以下部分：

部分 | 描述
result | 任意数值变量。
number1 | 任意数值表达式。
number2 | 任意数值表达式。

说明
如果一个或两个表达式为 Null 表达式，result 为 Null。任何表达式为 Empty 时，则按 0 处理。


³ýÔËËã·û (/)

/ ÔËËã·û
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

* ÔËËã·û
\ ÔËËã·û
ËãÊõÔËËã·û
ÔËËã·ûÓÅÏÈ¼¶
ÔËËã·û¸ÅÊö


Eqv 运算符

Eqv 运算符 		语言参考
版本 1

请参阅

描述
执行两个表达式的逻辑等价运算。
语法
result = expression1 Eqv expression2

Eqv 运算符的语法有以下部分：

部分 | 描述
result | 任意数值变量。
expression1 | 任意表达式。
expression2 | 任意表达式。

说明
如果任一表达式为 Null，则 result 也为 Null。当两个表达式都不为 Null 时，则 result 的值根据下表确定：

如果 expression1 为 | 且 expression2 为 | result 为
True | True | True
True | False | False
False | True | False
False | False | True

Eqv 运算符执行两个数值表达式相应位的逐位比较，并按下表设置 result 相应位：

如 expression1 中的位是 | 且 expression2 中的位是 | result 为
0 | 0 | 1
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1


Eqv ÔËËã·û

Eqv ÔËËã·û
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Imp ÔËËã·û
Âß¼ÔËËã·û
ÔËËã·ûÓÅÏÈ¼¶
ÔËËã·û¸ÅÊö


幂运算符 (^)

^ 运算符 		语言参考
版本 1

请参阅

描述
计算数的指数次方。
语法
result = number^exponent

^ 运算符的语法有以下部分：

部分 | 描述
result | 任意数值变量。
number | 任意数值表达式。
exponent | 任意数值表达式。

说明
仅当 exponent 参数为整数时，Number 参数才可为负值。如果单个表达式中有多个指数运算，则 ^ 运算符按从左到右的顺序执行。

如果 number 或 exponent 为 Null 表达式，则 result 值也为 Null。


ÃÝÔËËã·û (^)

^ ÔËËã·û
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

ËãÊõÔËËã·û
ÔËËã·ûÓÅÏÈ¼¶
ÔËËã·û¸ÅÊö


Imp 运算符

Imp 运算符 		语言参考
版本 1

请参阅

描述
对两个表达式进行逻辑蕴涵运算。
语法
result = expression1 Imp expression2

Imp 运算符的语法有以下部分：

部分 | 描述
result | 任意数值变量。
expression1 | 任意表达式。
expression2 | 任意表达式。

说明
下表显示如何确定 result 的取值：

如果 expression1 为 | 且 expression2 为 | 则 result 为
True | True | True
True | False | False
True | Null | Null
False | True | True
False | False | True
False | Null | True
Null | True | True
Null | False | Null
Null | Null | Null

Imp 运算符执行两个数值表达式相应位的逐位比较，并按下表设置 result 相应位：

如 expression1 中的位是 | 且 expression2 中的位是 | 则 result 为
0 | 0 | 1
0 | 1 | 1
1 | 0 | 0
1 | 1 | 1


Imp ÔËËã·û

Imp ÔËËã·û
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Eqv ÔËËã·û
Âß¼ÔËËã·û
ÔËËã·ûÓÅÏÈ¼¶
ÔËËã·û¸ÅÊö


\ 运算符

\ 运算符 		语言参考
版本 1

请参阅

描述
两个数相除并返回以整数形式表示的结果。
语法
result = number1\number2

\ 运算符的语法有以下部分：

部分 | 描述
result | 任意数值变量。
number1 | 任意数值表达式。
number2 | 任意数值表达式。

说明
在除法操作前，数值表达式四舍五入为 Byte、Integer 或 Long 子类型表达式。

如果任何表达式为 Null，result 也是 Null。任何表达式为 Empty 时，则按 0 处理。


\ ÔËËã·û

\ ÔËËã·û
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

* ÔËËã·û
/ ÔËËã·û
ËãÊõÔËËã·û
ÔËËã·ûÓÅÏÈ¼¶
ÔËËã·û¸ÅÊö


Is 运算符

Is 运算符 		语言参考
版本 1

请参阅

描述
比较两个对象引用变量。
语法
result = object1 Is object2

Is 运算符的语法有以下部分：

部分 | 描述
result | 任意数值变量。
object1 | 任意对象名。
object2 | 任意对象名。

说明
如果 object1 和 object2 都引用同一个对象，则 result 为 True；否则 result 为 False。可以使用许多方法使两个变量引用同一个对象。

在下列代码中，使 A 引用的对象与 B 的对象相同：

Set A = B
在下列代码中使 A 与 B 引用的对象与 C 的对象相同：

Set A = C
Set B = C


Is ÔËËã·û

Is ÔËËã·û
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

±È½ÏÔËËã·û
ÔËËã·ûÓÅÏÈ¼¶
ÔËËã·û¸ÅÊö


Mod 运算符

Mod 运算符 		语言参考
版本 1

请参阅

描述
两个数值相除并返回其余数。
语法
result = number1 Mod number2

Mod 运算符的语法有以下部分：

部分 | 描述
result | 任意数值变量。
number1 | 任意数值表达式。
number2 | 任意数值表达式。

说明
模数或余数。运算符执行 number1 除以 number2 操作（浮点数四舍五入为整数）并只返回余数作为 result。例如，在下面的表达式中， A（为 result）等于 5。

A = 19 Mod 6.7
如果任一表达式为 Null，则 result 也为 Null。任一表达式为 Empty 时按 0 来处理。


Mod ÔËËã·û

Mod ÔËËã·û
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

ËãÊõÔËËã·û
ÔËËã·ûÓÅÏÈ¼¶
ÔËËã·û¸ÅÊö


乘运算符 (*)

* 运算符 		语言参考
版本 1

请参阅

描述
两个数相乘。
语法
result = number1*number2

* 运算符的语法有以下部分：

参数 | 描述
result | 任意数值变量。
number1 | 任意数值表达式。
number2 | 任意数值表达式。

说明
如果一个或两个表达式为 Null 表达式，result 为 Null。如果一个表达式为 Empty，则按 0 处理。


³ËÔËËã·û (*)

* ÔËËã·û
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

\ ÔËËã·û
ËãÊõÔËËã·û
ÔËËã·ûÓÅÏÈ¼¶
ÔËËã·û¸ÅÊö


Not 运算符

Not 运算符 		语言参考
版本 1

请参阅

描述
对表达式执行逻辑非运算。
语法
result = Not expression

Not 运算符的语法有以下部分：

部分 | 描述
result | 任意数值变量。
expression | 任意表达式。

说明
下表显示如何确定 result 的值：

如果 expression 为 | 则 result 为
True | False
False | True
Null | Null

此外，Not 运算符将变量的位取反，并按下表设置 result 的相应位：

expression 中的位 | result 中的位
0 | 1
1 | 0


Not ÔËËã·û

Not ÔËËã·û
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

And ÔËËã·û
Âß¼ÔËËã·û
ÔËËã·ûÓÅÏÈ¼¶
ÔËËã·û¸ÅÊö
Or ÔËËã·û
Xor ÔËËã·û


Or 运算符

Or 运算符 		语言参考
版本 1

请参阅

描述
对两个表达式进行逻辑“或”运算。
语法
result = expression1 Or expression2

Or 运算符的语法有以下部分：

部分 | 描述
result | 任意数值变量。
expression1 | 任意表达式。
expression2 | 任意表达式。

说明
如果两个表达式中至少有一个为 True，则 result 为 True。下表说明如何确定 result：

如果 expression1 为 | expression2 为 | 则 result 为
True | True | True
True | False | True
True | Null | True
False | True | True
False | False | False
False | Null | Null
Null | True | True
Null | False | Null
Null | Null | Null

Or 运算符还对两个数值表达式中位置相同的位执行逐位比较，并根据下表设置 result 中相应的位：

如果 expression1 中的位是 | expression2 中的位是 | 则 result 为
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 1


Or ÔËËã·û

Or ÔËËã·û
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

And ÔËËã·û
Âß¼ÔËËã·û
Not ÔËËã·û
ÔËËã·ûÓÅÏÈ¼¶
ÔËËã·û¸ÅÊö
Xor ÔËËã·û


减运算符 (-)

- 运算符 		语言参考
版本 1

请参阅

描述
计算两个数值的差或表示数值表达式的负值。
语法 1
result = number1-number2
语法 2
-number

- 运算符的语法有以下部分：

部分 | 描述
result | 任意数值变量。
number | 任意数值表达式。
number1 | 任意数值表达式。
number2 | 任意数值表达式。

说明
在语法 1 中，- 运算符是用于计算两个数值差值的算术减法运算符。在语法 2 中，- 运算符用作单目求反运算符，表示表达式的负数。

如果一个或两个表达式都是 Null 表达式，则 result 为 Null。如果某个表达式为 Empty，则按 0 值处理。


¼õÔËËã·û (-)

- ÔËËã·û
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

+ ÔËËã·û
ËãÊõÔËËã·û
ÔËËã·ûÓÅÏÈ¼¶
ÔËËã·û¸ÅÊö


Xor 运算符

Xor 运算符 		语言参考
版本 1

请参阅

描述
对两个表达式进行逻辑“异或”运算。
语法
result = expression1 Xor expression2

Xor 运算符的语法有以下部分：

部分 | 描述
result | 任意数值变量。
expression1 | 任意表达式。
expression2 | 任意表达式。

说明
如果有且仅有一个表达式为 True，则 result 为 True。但是，如果任意一个表达式为 Null，则 result 也为 Null。若两个表达式均不为 Null，则根据下表确定 result：

如果 expression1 为 | expression2 为 | 则 result 为
True | True | False
True | False | True
False | True | True
False | False | False

Xor 运算符还可以对两个数值表达式中位置相同的位执行逐位比较，并根据下表设置 result 中相应的位：

如果 expression1 中的位是 | expression2 中的位是 | 则 result 为
0 | 0 | 0
0 | 1 | 1
1 | 0 | 1
1 | 1 | 0


Xor ÔËËã·û

Xor ÔËËã·û
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

And ÔËËã·û
Âß¼ÔËËã·û
Not ÔËËã·û
ÔËËã·ûÓÅÏÈ¼¶
ÔËËã·û¸ÅÊö
Or ÔËËã·û


AtEndOfLine 属性

AtEndOfLine 属性 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
在 TextStream 文件中，如果文件指针指向行末标记，就返回 True；否则如果不是只读则返回 False。
语法
object.AtEndOfLine

object 应为 TextStream 对象的名称。

说明
AtEndOfLine 属性仅应用于以读方式打开的 TextStream 文件，否则会出现错误。

下列代码举例说明如何使用 AtEndOfLine 属性：

Function ReadEntireFile(filespec)
  Const ForReading = 1
  Dim fso, theFile, retstring
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set theFile = fso.OpenTextFile(filespec, ForReading, False)
  Do While theFile.AtEndOfLine <> True
    retstring = theFile.Read(1)
  Loop
  theFile.Close
  ReadEntireFile = retstring
End Function


AtEndOfLine ÊôÐÔ

AtEndOfLine ÊôÐÔ
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

TextStream ¶ÔÏó


AtEndOfLine ÊôÐÔ

AtEndOfLine ÊôÐÔ
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

AtEndOfStream ÊôÐÔ
Column ÊôÐÔ
Line ÊôÐÔ


AtEndOfStream 属性

AtEndOfStream 属性 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
如果文件指针位于 TextStream 文件末，则返回 True；否则如果不为只读则返回 False。
语法
object.AtEndOfStream

object 应为 TextStream 对象的名称。

说明
AtEndOfStream 属性仅应用于以只读方式打开的 TextStream 文件，否则会出现错误。

下列代码举例说明如何使用 AtEndOfStream 属性：

Function ReadEntireFile(filespec)
  Const ForReading = 1
  Dim fso, theFile, retstring
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set theFile = fso.OpenTextFile(filespec, ForReading, False)
  Do While theFile.AtEndOfStream <> True
    retstring = theFile.ReadLine
  Loop
  theFile.Close
  ReadEntireFile = retstring
End Function


AtEndOfStream ÊôÐÔ

AtEndOfStream ÊôÐÔ
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

TextStream ¶ÔÏó


AtEndOfStream ÊôÐÔ

AtEndOfStream ÊôÐÔ
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

AtEndOfLine ÊôÐÔ
Column ÊôÐÔ
Line ÊôÐÔ


Attributes 属性

Attributes 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
设置或返回文件或文件夹的属性。可读写或只读（与属性有关）。
语法
object.Attributes [= newattributes]

Attributes 属性的语法有以下部分：

部分 | 描述
object | 必选。应为 File 或 Folder 对象的名称。
newattributes | 可选。如果指定此参数，则 newattributes 为指定的 object 的属性的新值。

设置
newattributes 参数可为下列设置之一或下列设置的合理组合：

常数 | 值 | 描述
Normal | 0 | 普通文件。没有设置任何属性。
ReadOnly | 1 | 只读文件。可读写。
Hidden | 2 | 隐藏文件。可读写。
System | 4 | 系统文件。可读写。
Volume | 8 | 磁盘驱动器卷标。只读。
Directory | 16 | 文件夹或目录。只读。
Archive | 32 | 上次备份后已更改的文件。可读写。
Alias | 64 | 链接或快捷方式。只读。
Compressed | 128 | 压缩文件。只读。

说明
以下代码举例说明如何使用 Attributes 属性：
Function ToggleArchiveBit(filespec)
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetFile(filespec)
  If f.attributes and 32 Then
    f.attributes = f.attributes - 32
    ToggleArchiveBit = "清空归档位。"
  Else
    f.attributes = f.attributes + 32
    ToggleArchiveBit = "设置归档位。"
  End If
End Function


Attributes 属性

Attributes 属性
应用于 		Scripting 运行时参考

File 对象
Folder 对象


Attributes 属性

Attributes 属性
请参阅 		Scripting 运行时参考

DateCreated 属性
DateLastAccessed 属性
DateLastModified 属性
Drive 属性
Files 属性
IsRootFolder 属性
Name 属性
ParentFolder 属性
Path 属性
ShortName 属性
ShortPath 属性
Size 属性
SubFolders 属性
Type 属性


AvailableSpace 属性

AvailableSpace 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回指定的驱动器或网络共享对于用户的可用空间大小。
语法
object.AvailableSpace

object 应为 Drive 对象的名称。

说明
AvailableSpace 属性与 FreeSpace 属性返回的值基本相同。对于支持限额的计算机系统来说，这两个属性返回的值有所差异。

下面代码举例说明如何使用 AvailableSpace 属性：

Function ShowAvailableSpace(drvPath)
  Dim fso, d, s
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set d = fso.GetDrive(fso.GetDriveName(drvPath))
  s = "Drive " & UCase(drvPath) & " - "
  s = s & d.VolumeName  & "<BR>"
  s = s & "可用空间： " & FormatNumber(d.AvailableSpace/1024, 0)
  s = s & " Kbytes"
  ShowAvailableSpace = s
End Function


AvailableSpace 属性

AvailableSpace 属性
应用于 		Scripting 运行时参考

Drive 对象


Attributes 属性

Attributes 属性
请参阅 		Scripting 运行时参考

AvailableSpace 属性
DriveLetter 属性
DriveType 属性
FileSystem 属性
FreeSpace 属性
IsReady 属性
Path 属性
RootFolder 属性
SerialNumber 属性
ShareName 属性
TotalSize 属性
VolumeName 属性


Column 属性

Column 属性 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
只读属性，返回 TextStream 文件中当前字符位置的列号。
语法
object.Column

object 通常是 TextStream 对象的名称。

说明
在写入新行字符后，但在写其他字符前，Column 等于 1。

下面例子举例说明如何使用 Column属性:

Function GetColumn
  Const ForReading = 1, ForWriting = 2
  Dim fso, f, m
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile("c:\testfile.txt", ForWriting, True)
  f.Write "世界你好!"
  f.Close
  Set f = fso.OpenTextFile("c:\testfile.txt", ForReading)
  m =  f.ReadLine
  GetColumn = f.Column
End Function


Column ÊôÐÔ

Column ÊôÐÔ
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

TextStream ¶ÔÏó


Column ÊôÐÔ

Column ÊôÐÔ
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

AtEndOfLine ÊôÐÔ
AtEndOfStream ÊôÐÔ
Line ÊôÐÔ


CompareMode 属性

CompareMode 属性 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
设置并返回在 Dictionary 对象中比较字符串关键字的比较模式。
语法
object.CompareMode[ = compare]

CompareMode 属性有以下部分：

部分 | 描述
object | 必选。Dictionary 对象的名称。
compare | 可选。如果提供此参数，compare 参数为数值，表示由函数如 StrComp 使用的比较模式。

设置
compare 参数设置如下:

Constant | Value | Description
vbBinaryCompare | 0 | 执行二进制比较.
vbTextCompare | 1 | 执行文本比较.

说明
大于 2 的值可用来进行使用国别 Ids 的比较 (LCID)如果试图更改已经包含数据的 Dictionary 对象的比较模式，则会出现错误。

CompareMode 属性使用与 StrComp 函数中 compare 参数相同的值。

下面例子举例说明如何使用 CompareMode 属性:

Dim d
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare
d.Add "a", "Athens"      ' 增加一些键和项目。
d.Add "b", "Belgrade"
d.Add "c", "Cairo"
d.Add "B", "Baltimore"   ' 在此行添加方法失败因为
                         ' 字母 b 已经在 Dictionary 中存在。


CompareMode ÊôÐÔ

CompareMode ÊôÐÔ
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

Dictionary ¶ÔÏó


CompareMode ÊôÐÔ

CompareMode ÊôÐÔ
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

Count ÊôÐÔ
Item ÊôÐÔ
Key ÊôÐÔ


Count 属性

Count 属性 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
返回一个集合或 Dictionary 对象包含的项目数。只读。
语法
object.Count

object 可以是“应用于”列表中列出的任何集合或对象的名称。

说明
以下代码举例说明如何使用 Count 属性：
Function ShowKeys
  Dim a, d, i, s          ' 创建一些变量。
  Set d = CreateObject("Scripting.Dictionary")
  d.Add "a", "Athens"     ' 添加一些键和项目。
  d.Add "b", "Belgrade"
  d.Add "c", "Cairo"
  a = d.Keys              ' 获取键。
  For i = 0 To d.Count -1 '重复数组。
    s = s & a(i) & "<BR>" ' 创建返回字符串。
  Next
  ShowKeys = s
End Function


Count 属性

Count 属性
应用于 		Scripting 运行时参考

Dictionary 对象
Drives 集合
Files 集合
Folders 集合
Matches 集合


Count 属性

Count 属性
请参阅 		Scripting 运行时参考

CompareMode 属性
Item 属性
Key 属性


DateCreated 属性

DateCreated 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回指定的文件或文件夹的创建日期和时间。只读。
语法
object.DateCreated

object 应为 File 或 Folder 对象的名称。

说明
以下代码举例说明如何使用 DateCreated 属性：
Function ShowFileInfo(filespec)
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetFile(filespec)
  ShowFileInfo = "创建： " & f.DateCreated
End Function


DateCreated 属性

DateCreated 属性
应用于 		Scripting 运行时参考

File 对象
Folder 对象


DateCreated 属性

DateCreated 属性
请参阅 		Scripting 运行时参考

Attributes 属性
DateLastAccessed 属性
DateLastModified 属性
Drive 属性
Files 属性
IsRootFolder 属性
Name 属性
ParentFolder 属性
Path 属性
ShortName 属性
ShortPath 属性
Size 属性
SubFolders 属性
Type 属性


DateLastAccessed 属性

DateLastAccessed 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回指定的文件或文件夹的上次访问日期和时间。只读。
语法
object.DateLastAccessed

object 应为 File 或 Folder 对象的名称。

说明
以下代码举例说明如何使用 DateLastAccessed 属性：
Function ShowFileAccessInfo(filespec)
  Dim fso, f, s
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetFile(filespec)
  s = UCase(filespec) & "<BR>"
  s = s & "创建： " & f.DateCreated & "<BR>"
  s = s & "最后一次访问： " & f.DateLastAccessed & "<BR>"
  s = s & "最后一次修改： " & f.DateLastModified
  ShowFileAccessInfo = s
End Function
重点 此属性依赖于操作系统的行为。如果操作系统不支持提供时间信息，则 DateLastAccessed 属性不返回任何值。


DateLastAccessed 属性

DateLastAccessed 属性
应用于 		Scripting 运行时参考

File 对象
Folder 对象


DateLastAccessed 属性

DateLastAccessed 属性
请参阅 		Scripting 运行时参考

Attributes 属性
DateCreated 属性
DateLastModified 属性
Drive 属性
Files 属性
IsRootFolder 属性
Name 属性
ParentFolder 属性
Path 属性
ShortName 属性
ShortPath 属性
Size 属性
SubFolders 属性
Type 属性


DateLastModified 属性

DateLastModified 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回指定的文件或文件夹的上次修改日期和时间。只读。
语法
object.DateLastModified

object 应为 File 或 Folder 对象的名称。

说明
以下代码举例说明如何使用 DateLastModified 属性：
Function ShowFileAccessInfo(filespec)
    Dim fso, f, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFile(filespec)
    s = UCase(filespec) & "<BR>"
    s = s & "创建时间： " & f.DateCreated & "<BR>"
    s = s & "上次访问时间： " & f.DateLastAccessed & "<BR>"
    s = s & "上次修改时间： " & f.DateLastModified
ShowFileAccessInfo = s
End Function


DateLastModified 属性

DateLastModified 属性
应用于 		Scripting 运行时参考

File 对象
Folder 对象


DateLastModified 属性

DateLastModified 属性
See Also 		Scripting 运行时参考

Attributes 属性
DateCreated 属性
DateLastAccessed 属性
Drive 属性
Files 属性
IsRootFolder 属性
Name 属性
ParentFolder 属性
Path 属性
ShortName 属性
ShortPath 属性
Size 属性
SubFolders 属性
Type 属性


Description 属性

Description 属性 		语言参考
版本 1

请参阅 应用于

描述
返回或设置与错误相关联的说明性字符串。
语法
object.Description [= stringexpression]

Description 属性语法有以下部分：

部分 | 描述
object | Err 对象。
stringexpression | 包含错误说明的字符串表达式。

说明
Description 属性包含错误的简短说明。此属性用于提示用户注意您不能或不想处理的错误。当产生一个用户定义的错误时，将此错误的简要说明赋值给此属性。如果未填充 Description 属性并且 Number 的值对应于 VBScript 运行时错误，则返回有关错误的说明性字符串。
On Error Resume Next
Err.Raise 6  '产生溢出错误。
MsgBox ("Error # " & CStr(Err.Number) & " " & Err.Description)
Err.Clear    '清除错误。


Description ÊôÐÔ

Description ÊôÐÔ
Ó¦ÓÃÓÚ 		ÓïÑÔ²Î¿¼

Err ¶ÔÏó


Description ÊôÐÔ

Description ÊôÐÔ
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Err ¶ÔÏó
HelpContext ÊôÐÔ
HelpFile ÊôÐÔ
Number ÊôÐÔ
Source ÊôÐÔ


Drive 属性

Drive 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回指定的文件或文件夹所在的驱动器的驱动器号。只读。
语法
object.Drive

object 应为 File 或 Folder 对象的名称。

说明
以下代码举例说明如何使用 Drive 属性：
Function ShowFileAccessInfo(filespec)
    Dim fso, f, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFile(filespec)
    s = f.Name & " 位于驱动器 " & UCase(f.Drive) & "<BR>"
    s = s & "创建时间： " & f.DateCreated & "<BR>"
    s = s & "上次访问时间： " & f.DateLastAccessed & "<BR>"
    s = s & "上次修改时间： " & f.DateLastModified
ShowFileAccessInfo = s
End Function


Drive 属性

Drive 属性
应用于 		Scripting 运行时参考

File 对象
Folder 对象


Drive 属性

Drive 属性
请参阅 		Scripting 运行时参考

Attributes 属性
DateCreated 属性
DateLastAccessed 属性
DateLastModified 属性
Files 属性
IsRootFolder 属性
Name 属性
ParentFolder 属性
Path 属性
ShortName 属性
ShortPath 属性
Size 属性
SubFolders 属性
Type 属性


DriveLetter 属性

DriveLetter 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回本地驱动器或网络共享的驱动器号。只读。
语法
object.DriveLetter

object 应为 Drive 对象的名称。

说明
如果指定的驱动器没有与驱动器号相关联（例如，一个网络共享未映射驱动器号），则 DriveLetter 属性返回零长度字符串 ("")。

以下代码举例说明如何使用 DriveLetter 属性：

Function ShowDriveLetter(drvPath)
  Dim fso, d, s
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set d = fso.GetDrive(fso.GetDriveName(drvPath))
  s = "Drive " & d.DriveLetter & ": - "
  s = s & d.VolumeName & "<BR>"
  s = s & "Free Space: " & FormatNumber(d.FreeSpace/1024, 0)
  s = s & " Kbytes"
  ShowDriveLetter = s
End Function


DriveLetter 属性

DriveLetter 属性
应用于 		Scripting 运行时参考

Drive 对象


DriveLetter 属性

DriveLetter 属性
请参阅 		Scripting 运行时参考

AvailableSpace 属性
DriveType 属性
FileSystem 属性
FreeSpace 属性
IsReady 属性
Path 属性
RootFolder 属性
SerialNumber 属性
ShareName 属性
TotalSize 属性
VolumeName 属性


Drives 属性

Drives 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回由本地机器上所有 Drive 对象组成的 Drives 集合。
语法
object.Drives

object 应为 FileSystemObject 对象的名称。

说明
无论是否插入媒体，可移动媒体驱动器都显示在 Drives 集合中。

您可以使用 For Each...Next 结构枚举 Drives 集合的成员，如下例所示：

Function ShowDriveList
    Dim fso, d, dc, s, n
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set dc = fso.Drives
    For Each d in dc
        s = s & d.DriveLetter & " - "
        If d.DriveType = 3 Then
            n = d.ShareName
        ElseIf d.IsReady Then
            n = d.VolumeName
        End If
        s = s & n & "<BR>
    Next
   ShowDriveList = s
End Function


Drives 属性

Drives 属性
应用于 		Scripting 运行时参考

FileSystemObject 对象


Drives 属性

Drives 属性
请参阅 		Scripting 运行时参考

Drives 集合
Files 属性
SubFolders 属性


DriveType 属性

DriveType 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回一个描述指定驱动器的类型的值。
语法
object.DriveType

object 应为 Drive 对象的名称。

说明
以下代码举例说明如何使用 DriveType 属性：
Function ShowDriveType(drvpath)
    Dim fso, d, t
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set d = fso.GetDrive(drvpath)
    Select Case d.DriveType
        Case 0: t = "未知"
        Case 1: t = "可移动"
        Case 2: t = "固定"
        Case 3: t = "网络"
        Case 4: t = "CD-ROM"
        Case 5: t = "RAM 磁盘"
    End Select
    ShowDriveType = "驱动器 " & d.DriveLetter & ": - " & t
End Function


DriveType 属性

DriveType 属性
应用于 		Scripting 运行时参考

Drive 对象


DriveType 属性

DriveType 属性
请参阅 		Scripting 运行时参考

AvailableSpace 属性
DriveLetter 属性
FileSystem 属性
FreeSpace 属性
IsReady 属性
Path 属性
RootFolder 属性
SerialNumber 属性
ShareName 属性
TotalSize 属性
VolumeName 属性


Files 属性

Files 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回由指定文件夹中所有 File 对象（包括隐藏文件和系统文件）组成的 Files 集合。
语法
object.Files

object 应为 Folder 对象的名称。

说明
以下代码举例说明如何使用 Files 属性：
Function ShowFileList(folderspec)
    Dim fso, f, f1, fc, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFolder(folderspec)
    Set fc = f.Files
    For Each f1 in fc
        s = s & f1.name
        s = s &  "<BR>"
    Next
ShowFileList = s
End Function


Files 属性

Files 属性
应用于 		Scripting 运行时参考

Folder 对象


Files 属性

Files 属性
请参阅 		Scripting 运行时参考

Attributes 属性
DateCreated 属性
DateLastAccessed 属性
DateLastModified 属性
Drives 属性
IsRootFolder 属性
Name 属性
ParentFolder 属性
Path 属性
ShortName 属性
ShortPath 属性
Size 属性
SubFolders 属性
Type 属性


FileSystem 属性

FileSystem 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回指定的驱动器使用的文件系统的类型。
语法
object.FileSystem

object 应为 Drive 对象的名称。

说明
可用的返回类型包括 FAT、NTFS 和 CDFS。

以下代码举例说明如何使用 FileSystem 属性：

 Function ShowFileSystemType(drvspec)
    Dim fso,d, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set d = fso. GetDrive(drvspec)
    ShowFileSystemType = d.FileSystem
End Function


FileSystem 属性

FileSystem 属性
应用于 		Scripting 运行时参考

Drive 对象


FileSystem 属性

FileSystem 属性
请参阅 		Scripting 运行时参考

AvailableSpace 属性
DriveLetter 属性
DriveType 属性
FileSystemObject 对象
FreeSpace 属性
IsReady 属性
Path 属性
RootFolder 属性
SerialNumber 属性
ShareName 属性
TotalSize 属性
VolumeName 属性


FirstIndex 属性

FirstIndex 属性 		语言参考
版本 5

请参阅 应用于

描述
返回在搜索字符串中匹配的位置。
语法
object.FirstIndex

object 参数总是一个 Match 对象。

说明
FirstIndex 属性使用从零起算的偏移量，该偏移量是相对于搜索字符串的起始位置而言的。换言之，字符串中的第一个字符被标识为字符 0。 下面的例子说明了 FirstIndex 属性的用法：
~Function RegExpTest(patrn, strng)
  Dim regEx, Match, Matches		' 建立变量。
  Set regEx = New RegExp			' 建立正则表达式。
  regEx.Pattern = patrn			' 设置模式。
  regEx.IgnoreCase = True			' 设置是否区分大小写。
  regEx.Global = True			' 设置全局可用性。
  Set Matches = regEx.Execute(strng)	' 执行搜索。
  For Each Match in Matches		' 遍历 Matches 集合。
    RetStr = RetStr & "匹配 " & I & " 位于 "
    RetStr = RetStr & Match.FirstIndex & ". Match Value is "'
    RetStr = RetStr & Match.Value & "'." & vbCRLF
  Next
  RegExpTest = RetStr
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))


FirstIndex 属性

FirstIndex 属性
应用于 		语言参考

Match 对象


FirstIndex 属性

FirstIndex 属性
请参阅 		语言参考

Length 属性
Value 属性


FreeSpace 属性

FreeSpace 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回指定的驱动器或网络共享对于用户的可用空间大小。只读。
语法
object.FreeSpace

object 应为 Drive 对象的名称。

说明
FreeSpace 属性与 AvailableSpace 属性返回的值基本相同。对于支持限额的计算机系统来说，这两个属性返回的值有所差异。

以下代码举例说明如何使用 FreeSpace 属性：

Function ShowFreeSpace(drvPath)
    Dim fso, d, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set d = fso.GetDrive(fso.GetDriveName(drvPath))
    s = "驱动器 " & UCase(drvPath) & " - "
    s = s & d.VolumeName  &"<BR>"
    s = s & "可用空间： " & FormatNumber(d.FreeSpace/1024, 0)
    s = s & "KB"
ShowFreeSpace = s
End Function


FreeSpace 属性

FreeSpace 属性
应用于 		Scripting 运行时参考

Drive 对象


FreeSpace 属性

FreeSpace 属性
请参阅 		Scripting 运行时参考

AvailableSpace 属性
DriveLetter 属性
DriveType 属性
FileSystem 属性
IsReady 属性
Path 属性
RootFolder 属性
SerialNumber 属性
ShareName 属性
TotalSize 属性
VolumeName 属性


Global 属性

Global 属性 		语言参考
版本 5

请参阅 应用于

描述
设置或返回一个 Boolean 值，该值指明在整个搜索字符串时模式是全部匹配还是只匹配第一个。
语法
object.Global [= True | False ]

object 参数总是 RegExp 对象。如果搜索应用于整个字符串，Global 属性的值为 True，否则其值为 False。默认的设置为 True。

说明
下面的代码说明了 Global 属性的用法（改变赋予 Global 属性的值并观察其效果）：
Function RegExpTest(patrn, strng)
  Dim regEx					' 建立变量。
  Set regEx = New RegExp			' 建立规范表达式。
  regEx.Pattern = patrn			' 设置模式。
  regEx.IgnoreCase = True			' 设置是否区分字母的大小写。
  regEx.Global = True			' 设置全程性质。
  RegExpTest = regEx.Execute(strng)	' 执行搜索。
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))


Global 属性

Global 属性
应用于 		语言参考

RegExp 对象


Global 属性

Global 属性
请参阅 		语言参考

IgnoreCase 属性
Pattern 属性


HelpContext 属性

HelpContext 属性 		语言参考
版本 2

请参阅 应用于

描述
设置或返回帮助文件主题的上下文 ID。
语法
object.HelpContext [= contextID]

HelpContext 属性语法有以下部分：

部分 | 描述
object | 必选。Err 对象。
contextID | 可选。在帮助文件中帮助主题的有效标识符。

说明
如果在 HelpFile 中指定帮助文件，则 HelpContext 属性用于自动显示标识的帮助主题。如果 HelpFile 和 HelpContext 都为空，则检查 Number 属性。如果它对应于 VBScript 运行时错误值，则使用该错误的 VBScript Help 上下文 ID 。如果 Number 属性不对应于 VBScript 错误，则显示 VBScript Help 文件的目录。

下面例子举例说明如何使用 HelpContext 属性:

On Error Resume Next
Dim Msg
Err.Clear
Err.Raise 6    ' 发生“溢出”错误。
Err.Helpfile = "yourHelp.hlp"
Err.HelpContext = yourContextID
If Err.Number <> 0 Then
   Msg = "按下 F1 键或 Help 查看" & Err.Helpfile & " 与下列 HelpContext " & _
   " 有关的主题: " & Err.HelpContext
   MsgBox Msg, , "错误: " & Err.Description, Err.Helpfile, Err.HelpContext
End If


HelpContext ÊôÐÔ

HelpContext ÊôÐÔ
Ó¦ÓÃÓÚ 		ÓïÑÔ²Î¿¼

Err ¶ÔÏó


HelpContext ÊôÐÔ

HelpContext ÊôÐÔ
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Description ÊôÐÔ
HelpFile ÊôÐÔ
Number ÊôÐÔ
Source ÊôÐÔ


HelpFile 属性

HelpFile 属性 		语言参考
版本 2

请参阅 应用于

描述
设置或返回帮助文件的完整有效路径。
语法
object.HelpFile [= contextID]

HelpFile 属性语法有以下部分：

部分 | 描述
object | 必选。Err 对象。
contextID | 可选。帮助文件的完整有效路径。

说明
如果在 HelpFile 中指定帮助文件，则当用户在错误消息对话框中单击帮助按钮（或按 F1 键）时，自动调用此文件。如果 HelpContext 属性包含指定文件的有效上下文 ID ，则自动显示该主题。如果未指定 HelpFile，则显示 VBScript Help 文件。
On Error Resume Next
Dim Msg
Err.Clear
Err.Raise 6    '产生“溢出”错误。
Err.Helpfile = "yourHelp.hlp"
Err.HelpContext = yourContextID
If Err.Number <> 0 Then
   Msg = "按下 F1 键或 Help 查看" & Err.Helpfile & "与下列 HelpContext " & _
   " 有关的主题: " & Err.HelpContext
   MsgBox Msg, , "错误: " & Err.Description, Err.Helpfile, Err.HelpContext
End If


HelpFile ÊôÐÔ

HelpFile ÊôÐÔ
Ó¦ÓÃÓÚ 		ÓïÑÔ²Î¿¼

Err ¶ÔÏó


HelpFile ÊôÐÔ

HelpFile ÊôÐÔ
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Description ÊôÐÔ
HelpContext ÊôÐÔ
Number ÊôÐÔ
Source ÊôÐÔ


IgnoreCase 属性

IgnoreCase 属性 		语言参考
版本 5

请参阅 应用于

描述
设置或返回一个Boolean值，指明模式搜索是否区分大小写。
语法
object.IgnoreCase [= True | False ]

object 参数总是一个 RegExp 对象。如果搜索是区分大小写的，则 IgnoreCase 属性为 False；否则为 True。缺省值为 True。

说明
下面的代码说明了 IgnoreCase 属性的用法（改变赋予 IgnoreCase 属性的值以观察其效果)：
Function RegExpTest(patrn, strng)
  Dim regEx					' 建立变量。
  Set regEx = New RegExp			' 建立正则表达式。
  regEx.Pattern = patrn			' 设置模式。
  regEx.IgnoreCase = True			' 设置是否区分大小写。
  RegExpTest = regEx.Execute(strng)	' 执行搜索。
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))


IgnoreCase 属性

IgnoreCase 属性
应用于 		语言参考

RegExp 对象


IgnoreCase 属性

IgnoreCase 属性
请参阅 		语言参考

Global 属性
Pattern 属性


IsReady 属性

IsReady 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
如果指定的驱动器就绪，返回 True；否则返回 False。
语法
object.IsReady

object 应为 Drive 对象的名称。

说明
对于可移动媒体驱动器和 CD-ROM 驱动器，仅当插入相应的媒体并准备接受访问时，IsReady 返回 True。

以下代码举例说明如何使用 IsReady 属性：

Function ShowDriveInfo(drvpath)
    Dim fso, d, s, t
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set d = fso.GetDrive(drvpath)
    Select Case d.DriveType
        Case 0: t = "未知"
        Case 1: t = "可移动"
        Case 2: t = "固定"
        Case 3: t = "网络"
        Case 4: t = "CD-ROM"
        Case 5: t = "RAM 磁盘"
    End Select
    s = "驱动器 " & d.DriveLetter & ": - " & t
    If d.IsReady Then
        s = s & "<BR>" & "驱动器已就绪。"
    Else
        s = s & "<BR>"  & "驱动器未就绪。"
    End If
ShowDriveInfo = s
End Function


IsReady 属性

IsReady 属性
应用于 		Scripting 运行时参考

Drive 对象


VolumeName 属性

IsReady 属性
请参阅 		Scripting 运行时参考

AvailableSpace 属性
DriveLetter 属性
DriveType 属性
FileSystem 属性
FreeSpace 属性
Path 属性
RootFolder 属性
SerialNumber 属性
ShareName 属性
TotalSize 属性
VolumeName 属性


IsRootFolder 属性

IsRootFolder 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
如果指定的文件夹是根文件夹，返回 True；否则返回 False。
语法
object.IsRootFolder

object 应为 Folder 对象的名称。

说明
以下代码举例说明如何使用 IsRootFolder 属性：

Function DisplayLevelDepth(pathspec)
Dim fso, f, n
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(pathspec)
    If f.IsRootFolder Then
        DisplayLevelDepth ="指定的文件夹是根文件夹。"
    Else
        Do Until f.IsRootFolder
            Set f = f.ParentFolder
            n = n + 1
        Loop
       DisplayLevelDepth ="指定的文件夹是嵌套级为 " & n & " 的文件夹。"
    End If
End Function


IsRootFolder 属性

IsRootFolder 属性
应用于 		Scripting 运行时参考

Folder 对象


RootFolder 属性

IsRootFolder 属性
请参阅 		Scripting 运行时参考

Attributes 属性
DateCreated 属性
DateLastAccessed 属性
DateLastModified 属性
Drive 属性
Files 属性
Name 属性
ParentFolder 属性
Path 属性
ShortName 属性
ShortPath 属性
Size 属性
SubFolders 属性
Type 属性


Item 属性

Item 属性 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
设置或返回 Dictionary 对象中指定的 key 对应的 item，或返回集合中基于指定的 key 的 item。可读写。
语法
object.Item(key) [= newitem]

Item 属性的语法有以下部分：

部分 | 描述
object | 必选。应为集合或 Dictionary 对象的名称。
key | 必选。与检索或添加的 item 相关联的 key。
newitem | 可选。仅用于 Dictionary 对象，不能应用于集合。如果提供此参数，则 newitem 是与指定的 key 相关联的项目的新值。

说明
如果更改 item 时未找到 key，则使用指定的 newitem 创建一个新的 key。如果试图返回一个已有项目时未找到 key，则创建一个新的 key 并且它对应的项目为空值。

下面例子举例说明如何使用 Item 属性:

Function ItemDemo
  Dim d                   '创建变量.
  Set d = CreateObject("Scripting.Dictionary")
  d.Add "a", "Athens"     '添加键和项目对.
  d.Add "b", "Belgrade"
  d.Add "c", "Cairo"
  ItemDemo = d.Item("c")  '得到项目.
End Function


Item 属性

Item 属性
应用于 		Scripting 运行时参考

Dictionary 对象
Drives 集合
Files 集合
Folders 集合
Matches 集合


Item 属性

Item 属性
请参阅 		Scripting 运行时参考

CompareMode 属性
Count 属性
Key 属性


Key 属性

Key 属性 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
在 Dictionary 对象中设置 key。
语法
object.Key(key) = newkey

Key 属性结构如下：

参数 | 描述
object | 必选。通常是 Dictionary 对象的名称。
key | 必选。要改变的 Key 值。
newkey | 必选。代替指定 key 值的新值。

说明
如果在更改 key 值时未找到 key，则出现运行时错误。

下面例子举例说明如何使用 Key 属性:

Function DicDemo
  Dim d                   '创建变量。
  Set d = CreateObject("Scripting.Dictionary")
  d.Add "a", "Athens"     '添加键和项目对。
  d.Add "b", "Belgrade"
  d.Add "c", "Cairo"
  d.Key("c") = "d"        '将"c"的键设置为"d"。
  DicDemo = d.Item("d")   '返回相关项目。
End Function


Key ÊôÐÔ

Key ÊôÐÔ
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

Dictionary ¶ÔÏó


Key ÊôÐÔ

Key ÊôÐÔ
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

CompareMode ÊôÐÔ
Count ÊôÐÔ
Item ÊôÐÔ


Length 属性

Length 属性 		语言参考
版本 5

请参阅 应用于

描述
返回在字符串搜索中找到的匹配的长度。
语法
object.Length

object 参数总是一个 Match 对象。

说明
下面的代码说明了 Length 属性的用法：
Function RegExpTest(patrn, strng)
  Dim regEx, Match, Matches		' 建立变量。
  Set regEx = New RegExp			' 建立正则表达式。
  regEx.Pattern = patrn			' 设置模式。
  regEx.IgnoreCase = True			' 设置是否区分大小写。
  regEx.Global = True			' 设置全程可用性。
  Set Matches = regEx.Execute(strng)	' 执行搜索。
  For Each Match in Matches		' 遍历 Matches 集合。
    RetStr = RetStr & "匹配 " & I & " 位于 "
    RetStr = RetStr & Match.FirstIndex & "。匹配的长度为"
    RetStr = RetStr & Match.Length
    RetStr = RetStr & "个字符。" & vbCRLF
  Next
  RegExpTest = RetStr
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))


Length 属性

Length 属性
应用于 		语言参考

Match 对象


Length 属性

Length 属性
请参阅 		语言参考

FirstIndex 属性
Value 属性


Line 属性

Line 属性 		Scripting 运行时参考
版本 2

请参阅 应用于

描述
只读属性，返回 TextStream 文件中的当前行号。
语法
object.Line

object 通常是 TextStream 对象的名称。

说明
文件刚刚打开并在写入任何信息前，Line 等于 1。

下面例子举例说明如何使用 Line 属性:

Function GetLine
  Const ForReading = 1, ForWriting = 2
  Dim fso, f, ra
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.OpenTextFile("c:\testfile.txt", ForWriting, True)
  f.Write "世界你好!" & vbCrLf & "VB脚本很有趣!" & vbCrLf
  Set f = fso.OpenTextFile("c:\testfile.txt", ForReading)
  ra =  f.ReadAll
  GetLine = f.Line
End Function


Line ÊôÐÔ

Line ÊôÐÔ
Ó¦ÓÃÓÚ 		Scripting ÔËÐÐÊ±²Î¿¼

TextStream ¶ÔÏó


Line ÊôÐÔ

Line ÊôÐÔ
Çë²ÎÔÄ 		Scripting ÔËÐÐÊ±²Î¿¼

AtEndOfStream ÊôÐÔ
AtEndOfLine ÊôÐÔ
Column ÊôÐÔ


Name 属性

Name 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
设置或返回指定的文件或文件夹的名称。可读写。
语法
object.Name [= newname]

Name 属性的语法有以下部分：

部分 | 描述
object | 必选。应为 File 或 Folder 对象的名称。
newname | 可选。如果提供此参数，则指定的 object 名称更新为 newname。

说明
以下代码举例说明如何使用 Name 属性：
Function ShowFileAccessInfo(filespec)
    Dim fso, f, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFile(filespec)
    s = f.Name & " 位于驱动器 " & UCase(f.Drive) & "<BR>"
    s = s & "创建时间： " & f.DateCreated & "<BR>"
    s = s & "上次访问时间： " & f.DateLastAccessed & "<BR>"
    s = s & "上次修改时间： " & f.DateLastModified
ShowFileAccessInfo = s
End Function


Name 属性

Name 属性
应用于 		Scripting 运行时参考

File 对象
Folder 对象


Name 属性

Name 属性
请参阅 		Scripting 运行时参考

Attributes 属性
DateCreated 属性
DateLastAccessed 属性
DateLastModified 属性
Drive 属性
Files 属性
IsRootFolder 属性
ParentFolder 属性
Path 属性
ShortName 属性
ShortPath 属性
Size 属性
SubFolders 属性
Type 属性


Number 属性

Number 属性 		语言参考

请参阅 应用于

描述
返回或设置数值指定错误。Number 是 Err 对象的默认属性。
语法
object.Number [= errornumber]

Number 属性语法有以下部分：

部分 | 描述
object | Err 对象。
errornumber | 表示 VBScript 错误编号或 SCODE 错误值的整数。

说明
从 Automation 对象返回用户定义错误时，将选定数字作为错误代码添加到常数 vbObjectError 以设置 Err.Number。

下面代码举例说明如何使用 Number 属性

On Error Resume Next
Err.Raise vbObjectError + 1, "SomeObject"	' 产生对象错误 #1.
MsgBox ("Error # " & CStr(Err.Number) & " " & Err.Description)
Err.Clear					' 清除错误。


Number ÊôÐÔ

Number ÊôÐÔ
Ó¦ÓÃÓÚ 		ÓïÑÔ²Î¿¼

Err ¶ÔÏó


Number ÊôÐÔ

Number ÊôÐÔ
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Description ÊôÐÔ
HelpContext ÊôÐÔ
HelpFile ÊôÐÔ
Err ¶ÔÏó
Source ÊôÐÔ
Error ÐÅÏ¢


ParentFolder 属性

ParentFolder 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回指定文件或文件夹的父文件夹。只读。
语法
object.ParentFolder

object 应为 File 或 Folder 对象的名称。

说明
以下代码举例说明如何使用 ParentFolder 属性：
Function ShowFileAccessInfo(filespec)
    Dim fso, f, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFile(filespec)
    s = UCase(f.Name) & " 的父文件夹为 " & UCase(f.ParentFolder) & "<BR>"
    s = s & "创建时间： " & f.DateCreated & "<BR>"
    s = s & "上次访问时间： " & f.DateLastAccessed & vbCrLf
    s = s & "上次修改时间： " & f.DateLastModified
ShowFileAccessInfo = s
End Function


ParentFolder 属性

ParentFolder 属性
应用于 		Scripting 运行时参考

File 对象
Folder 对象


ParentFolder 属性

ParentFolder 属性
请参阅 		Scripting 运行时参考

Attributes 属性
DateCreated 属性
DateLastAccessed 属性
DateLastModified 属性
Drive 属性
Files 属性
IsRootFolder 属性
Name 属性
Path 属性
ShortName 属性
ShortPath 属性
Size 属性
SubFolders 属性
Type 属性


Path 属性

Path 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回指定文件、文件夹或驱动器的路径。
语法
object.Path

object 应为 File、Folder 或 Drive 对象的名称。

说明
对于驱动器，路径不包含根目录。例如，C 驱动器的路径是 C:，而不是 C:\。

以下代码举例说明如何使用 Path 属性：

Function ShowFileAccessInfo(filespec)
    Dim fso, d, f, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFile(filespec)
    s = UCase(f.Path) & "<BR>"
    s = s & "创建时间： " & f.DateCreated & "<BR>"
    s = s & "上次访问时间： " & f.DateLastAccessed & "<BR>"
    s = s & "上次修改时间： " & f.DateLastModified
ShowFileAccessInfo = s
End Function


Path 属性

Path 属性
应用于 		Scripting 运行时参考

Drive 对象
File 对象
Folder 对象


Path 属性

Path 属性
请参阅 		Scripting 运行时参考

Attributes 属性
AvailableSpace 属性
DateCreated 属性
DateLastAccessed 属性
DateLastModified 属性
Drive 属性
DriveLetter 属性
DriveType 属性
Files 属性
FileSystem 属性
FreeSpace 属性
IsReady 属性
IsRootFolder 属性
Name 属性
ParentFolder 属性
RootFolder 属性
SerialNumber 属性
ShareName 属性
ShortName 属性
ShortPath 属性
Size 属性
SubFolders 属性
TotalSize 属性
Type 属性
VolumeName 属性


Pattern 属性

Pattern 属性 		语言参考
版本 5

请参阅 应用于

描述
设置或返回被搜索的正则表达式模式。
语法
object.Pattern [= "searchstring"]

Pattern 属性的语法包含以下几个部分：

部分 | 描述
object | 必需的。总是一个 RegExp 对象变量。
searchstring | 可选的。被搜索的正则字符串表达式。它可能包含设置部分表格中的各种正则表达式字符。

设置
在书写正则表达式的模式时使用了特殊的字符和序列。下表描述了可以使用的字符和序列，并给出了实例。

字符 | 描述
\ 将下一个字符标记为特殊字符或字面值。例如"n"与字符"n"匹配。"\n"与换行符匹配。序列"\\"与"\"匹配，"\("与"("匹配。
^ 匹配输入的开始位置。
$ 匹配输入的结尾。
* 匹配前一个字符零次或几次。例如，"zo*"可以匹配"z"、"zoo"。
+ 匹配前一个字符一次或多次。例如，"zo+"可以匹配"zoo",但不匹配"z"。
? 匹配前一个字符零次或一次。例如，"a?ve?"可以匹配"never"中的"ve"。
. 匹配换行符以外的任何字符。
(pattern) | 与模式匹配并记住匹配。匹配的子字符串可以从作为结果的 Matches 集合中使用 Item [0]...[n]取得。如果要匹配括号字符(和 )，可使用"\(" 或 "\)"。
x|y | 匹配 x 或 y。例如 "z|food" 可匹配 "z" 或 "food"。"(z|f)ood" 匹配 "zoo" 或 "food"。
{n} | n 为非负的整数。匹配恰好n次。例如，"o{2}" 不能与 "Bob 中的 "o" 匹配，但是可以与"foooood"中的前两个o匹配。
{n,} | n 为非负的整数。匹配至少n次。例如，"o{2,}"不匹配"Bob"中的"o"，但是匹配"foooood"中所有的o。"o{1,}"等价于"o+"。"o{0,}"等价于"o*"。
{n,m} | m 和 n 为非负的整数。匹配至少 n 次，至多 m 次。例如，"o{1,3}" 匹配 "fooooood"中前三个o。"o{0,1}"等价于"o?"。
[xyz] | 一个字符集。与括号中字符的其中之一匹配。例如，"[abc]" 匹配"plain"中的"a"。
[^xyz] | 一个否定的字符集。匹配不在此括号中的任何字符。例如，"[^abc]" 可以匹配"plain"中的"p".
[a-z] | 表示某个范围内的字符。与指定区间内的任何字符匹配。例如，"[a-z]"匹配"a"与"z"之间的任何一个小写字母字符。
[^m-z] | 否定的字符区间。与不在指定区间内的字符匹配。例如，"[m-z]"与不在"m"到"z"之间的任何字符匹配。
\b | 与单词的边界匹配，即单词与空格之间的位置。例如，"er\b" 与"never"中的"er"匹配，但是不匹配"verb"中的"er"。
\B | 与非单词边界匹配。"ea*r\B"与"never early"中的"ear"匹配。
\d | 与一个数字字符匹配。等价于[0-9]。
\D | 与非数字的字符匹配。等价于[^0-9]。
\f | 与分页符匹配。
\n | 与换行符字符匹配。
\r | 与回车字符匹配。
\s | 与任何白字符匹配，包括空格、制表符、分页符等。等价于"[ \f\n\r\t\v]"。
\S | 与任何非空白的字符匹配。等价于"[^ \f\n\r\t\v]"。
\t | 与制表符匹配。
\v | 与垂直制表符匹配。
\w | 与任何单词字符匹配，包括下划线。等价于"[A-Za-z0-9_]"。
\W | 与任何非单词字符匹配。等价于"[^A-Za-z0-9_]"。
\num | 匹配 num个，其中 num 为一个正整数。引用回到记住的匹配。例如，"(.)\1"匹配两个连续的相同的字符。
\n | 匹配 n，其中n 是一个八进制换码值。八进制换码值必须是 1, 2 或 3 个数字长。例如，"\11" 和 "\011" 都与一个制表符匹配。"\0011"等价于"\001" 与 "1"。八进制换码值不得超过 256。否则，只有前两个字符被视为表达式的一部分。允许在正则表达式中使用ASCII码。
\x n | 匹配n，其中n是一个十六进制的换码值。十六进制换码值必须恰好为两个数字长。例如，"\x41"匹配"A"。"\x041"等价于"\x04" 和 "1"。允许在正则表达式中使用 ASCII 码。

说明
下面的代码说明了 Pattern 属性的用法：
Function RegExpTest(patrn, strng)
  Dim regEx					' 建立变量。
  Set regEx = New RegExp			' 建立正则表达式。
  regEx.Pattern = patrn			' 设置模式。
  regEx.IgnoreCase = True			' 设置是否区分大小写。
  RegExpTest = regEx.Execute(strng)	' 执行搜索。
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))


Pattern 属性

Pattern 属性
应用于 		语言参考

RegExp 对象


Pattern 属性

Pattern 属性
请参阅 		语言参考

Global 属性
IgnoreCase 属性


RootFolder 属性

RootFolder 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回一个 Folder 对象，表示指定驱动器的根文件夹。只读。
语法
object.RootFolder

object 应为 Drive 对象的名称。

说明
使用返回的 Folder 对象，可以访问指定驱动器包含的所有文件和文件夹。

下面例子举例说明如何使用 RootFolder 属性:

Function ShowRootFolder(drvspec)
  Dim fso, f
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetDrive(drvspec)
  ShowRootFolder = f.RootFolder
End Function


RootFolder 属性

RootFolder 属性
应用于 		Scripting 运行时参考

Drive 对象


RootFolder 属性

RootFolder 属性
请参阅 		Scripting 运行时参考

AvailableSpace 属性
DriveLetter 属性
DriveType 属性
FileSystem 属性
FreeSpace 属性
IsReady 属性
Path 属性
SerialNumber 属性
ShareName 属性
TotalSize 属性
VolumeName 属性


SerialNumber 属性

SerialNumber 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回十进制序列号，用于唯一标识一个磁盘卷。
语法
object.SerialNumber

object 应为 Drive 对象的名称。

说明
可以使用 SerialNumber 属性以确保在可移动媒体驱动器中插入正确的磁盘。

以下代码举例说明如何使用 SerialNumber 属性：

Function ShowDriveInfo(drvpath)
    Dim fso, d, s, t
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set d = fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(drvpath)))
    Select Case d.DriveType
        Case 0: t = "未知"
        Case 1: t = "可移动"
        Case 2: t = "固定"
        Case 3: t = "网络"
        Case 4: t = "CD-ROM"
        Case 5: t = "RAM 磁盘"
    End Select
    s = "驱动器 " & d.DriveLetter & ": - " & t
    s = s & "<BR>" & "序列号： " & d.SerialNumber
ShowDriveInfo = s
End Function


SerialNumber 属性

SerialNumber 属性
应用于 		Scripting 运行时参考

Drive 对象


RootFolder 属性

RootFolder 属性
请参阅 		Scripting 运行时参考

AvailableSpace 属性
DriveLetter 属性
DriveType 属性
FileSystem 属性
FreeSpace 属性
IsReady 属性
Path 属性
RootFolder 属性
ShareName 属性
TotalSize 属性
VolumeName 属性


ShareName 属性

ShareName 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回指定的驱动器的网络共享名。
语法
object.ShareName

object 应为 Drive 对象的名称。

说明
如果 object 不是一个网络驱动器，则 ShareName 属性返回零长度字符串 ("")。

以下代码举例说明如何使用 ShareName 属性：

Function ShowDriveInfo(drvpath)
    Dim fso, d
    Set fso= fso.GetDrive(fso.GetDriveName(fso.GetAbsolutePathName(drvpath)))
    ShowDriveInfo = "驱动器 " & d.DriveLetter & ": - " & d.ShareName
End Function


ShareName 属性

ShareName 属性
应用于 		Scripting 运行时参考

Drive 对象


ShareName 属性

ShareName 属性
请参阅 		Scripting 运行时参考

AvailableSpace 属性
DriveLetter 属性
DriveType 属性
FileSystem 属性
FreeSpace 属性
IsReady 属性
Path 属性
RootFolder 属性
SerialNumber 属性
TotalSize 属性
VolumeName 属性


ShortName 属性

ShortName 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回按照早期 8.3 文件命名约定转换的短文件名。
语法
object.ShortName

object 应为 File 或 Folder 对象的名称。

说明
以下代码举例说明如何使用 ShortName 属性：
Function ShowShortName(filespec)
    Dim fso, f, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFile(filespec)
    s = UCase(f.Name) & "<BR>"的短文件名"
       s = s & "是： " & f.ShortName
  ShowShortName = s
End Function


ShortName 属性

ShortName 属性
应用于 		Scripting 运行时参考

File 对象
Folder 对象


ShortName 属性

ShortName 属性
请参阅 		Scripting 运行时参考

Attributes 属性
DateCreated 属性
DateLastAccessed 属性
DateLastModified 属性
Drive 属性
Files 属性
IsRootFolder 属性
Name 属性
ParentFolder 属性
Path 属性
ShortPath 属性
Size 属性
SubFolders 属性
Type 属性


ShortPath 属性

ShortPath 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回按照 8.3 命名约定转换的短路径名。
语法
object.ShortPath

object 应为 File 或 Folder 对象的名称。

说明
以下代码举例说明如何使用 ShortName 属性：
Function ShowShortPath(filespec)
    Dim fso, f, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFile(filespec)
    s = UCase(f.Name) & "<BR>"的短路径名"
    s = s & "是： " & f.ShortPath
ShowShortPath = s
End Function


ShortPath 属性

ShortPath 属性
应用于 		Scripting 运行时参考

File 对象
Folder 对象


ShortPath 属性

ShortPath 属性
请参阅 		Scripting 运行时参考

Attributes 属性
DateCreated 属性
DateLastAccessed 属性
DateLastModified 属性
Drive 属性
Files 属性
IsRootFolder 属性
Name 属性
ParentFolder 属性
Path 属性
ShortName 属性
Size 属性
SubFolders 属性
Type 属性


Size 属性

Size 属性 		Scripting 运行时参考
 版本 3

请参阅 应用于

描述
对于文件，返回指定文件的字节数；对于文件夹，返回该文件夹中所有文件和子文件夹的字节数。
语法
object.Size

object 应为 File 或 Folder 对象的名称。

说明
以下代码举例说明如何使用 Folder 对象的 Size 属性：
Function ShowFolderSize(filespec)
    Dim fso, f, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFolder(filespec)
s = UCase(f.Name) & " 大小为 " & f.size & " 字节。"
ShowFolderSize = s
End Function


Size 属性

Size 属性
应用于 		Scripting 运行时参考

File 对象
Folder 对象


Size 属性

Size 属性
请参阅 		Scripting 运行时参考

Attributes 属性
DateCreated 属性
DateLastAccessed 属性
DateLastModified 属性
Drive 属性
Files 属性
IsRootFolder 属性
Name 属性
ParentFolder 属性
Path 属性
ShortName 属性
ShortPath 属性
SubFolders 属性
Type 属性


Source 属性

Source 属性 		语言参考
版本 1

请参阅 应用于

描述
返回或设置最初生成错误的对象或应用程序的名称。
语法
object.Source [= stringexpression]

Source 属性的语法包含以下部分：

部分 | 描述
object | Err 对象。
stringexpression | 字符串表达式，表示生成错误的应用程序。

说明
Source 属性指定一个字符串表达式，此表达式通常是导致错误的对象的类名称或程序设计的 ID。当代码无法处理可访问对象产生的错误时，请使用 Source 为用户提供信息。例如，如果访问 Microsoft Excel 并且产生一个被零除的错误，Microsoft Excel 将 Err.Number 设置为此错误的错误代码并将 Source 设置为 Excel.Application。注意，如果错误产生于另一个由 Microsoft Excel 调用的对象中，则 Excel 截获此错误并且将 Err.Number 设置为它自己的被零除的代码。但是，它保留其他 Err 对象（包括 Source），就象由产生错误的对象设置一样。

Source 总是含有最初产生错误的对象名称，您可根据所访问对象的错误信息文档，编写处理错误的代码。若错误处理程序失败，则可使用 Err 对象信息为用户描述错误，使用 Source 和其他 Err 通知用户最初导致错误的对象、错误描述等等。在代码中产生错误时，Source 是应用程序的程序设计 ID 。

下面代码举例说明如何使用 Source 属性:

On Error Resume Next
Err.Raise 6  '产生溢出错误。
MsgBox ("Error # " & CStr(Err.Number) & " " &错误描述& 错误源 )
Err.Clear    '清除错误。


Source ÊôÐÔ

Source ÊôÐÔ
Ó¦ÓÃÓÚ 		ÓïÑÔ²Î¿¼

Err ¶ÔÏó


Source ÊôÐÔ

Source ÊôÐÔ
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Description ÊôÐÔ
Err ¶ÔÏó
HelpContext ÊôÐÔ
HelpFile ÊôÐÔ
Number ÊôÐÔ
On Error Óï¾ä


SubFolders 属性

SubFolders 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回由指定文件夹中所有子文件夹（包括隐藏文件夹和系统文件夹）组成的 Folders 集合。
语法
object.SubFolders

object 应为 Folder 对象的名称。

说明
以下代码举例说明如何使用 SubFolders 属性：
Function ShowFolderList(folderspec)
Dim fso= fso.GetFolder(folderspec)
Set f = fso.GetFolder(folderspec)
    Set sf = f.SubFolders
    For Each f1 in sf
        s = s & f1.name
        s = s &  "<BR>"
    Next
    ShowFolderList = s
End Function


SubFolders 属性

SubFolders 属性
应用于 		Scripting 运行时参考

Folder 对象


SubFolders 属性

SubFolders 属性
请参阅 		Scripting 运行时参考

Attributes 属性
DateCreated 属性
DateLastAccessed 属性
DateLastModified 属性
Drive 属性
Files 属性
IsRootFolder 属性
Name 属性
ParentFolder 属性
Path 属性
ShortName 属性
ShortPath 属性
Size 属性
Type 属性


TotalSize 属性

TotalSize 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回驱动器或网络共享的总字节数。
语法
object.TotalSize

object 应为 Drive 对象的名称。

说明
以下代码举例说明如何使用 TotalSize 属性：
Function ShowSpaceInfo(drvpath)
    Dim fso, d, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set d = fso.GetDrive(fso.GetDriveName(fs.GetAbsolutePathName(drvpath)))
    s = "驱动器 " & d.DriveLetter & ":"
    s = s & vbCrLf
    s = s & "总容量： " & FormatNumber(d.TotalSize/1024, 0) & "KB"
    s = s & vbCrLf
    s = s & "可用空间： " & FormatNumber(d.AvailableSpace/1024, 0) & "KB"
ShowSpaceInfo=s
End Function


TotalSize 属性

TotalSize 属性
应用于 		Scripting 运行时参考

Drive 对象


TotalSize 属性

TotalSize 属性
请参阅 		Scripting 运行时参考

AvailableSpace 属性
DriveLetter 属性
DriveType 属性
FileSystem 属性
FreeSpace 属性
IsReady 属性
Path 属性
RootFolder 属性
SerialNumber 属性
ShareName 属性
VolumeName 属性


Type 属性

Type 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
返回文件或文件夹的类型信息。例如，对于扩展名为 .TXT 的文件，返回“Text Document”。
语法
object.Type

object 应为 File 或 Folder 对象的名称。

说明
以下代码举例说明如何使用 Type 属性返回文件夹的类型。在此示例中，试图向过程提供“回收站”或其他唯一文件夹的路径。
 Function ShowFolderType(filespec)
    Dim fso, f, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.GetFolder(filespec)
    s = UCase(f.Name) & " 的类型为 " & f.Type
End Function
ShowFolderType = s


Type 属性

Type 属性
应用于 		Scripting 运行时参考

File 对象
Folder 对象


Type 属性

Type 属性
请参阅 		Scripting 运行时参考

Attributes 属性
DateCreated 属性
DateLastAccessed 属性
DateLastModified 属性
Drive 属性
Files 属性
IsRootFolder 属性
Name 属性
ParentFolder 属性
Path 属性
ShortName 属性
ShortPath 属性
Size 属性
SubFolders 属性


Value 属性

Value 属性 		语言参考
版本 5

请参阅 应用于

描述
返回在一个搜索字符串中找到的匹配的值或文本。
语法
object.Value

object 参数总是一个 Match 对象。

说明
下列代码说明了 Value 属性的用法：
Function RegExpTest(patrn, strng)
  Dim regEx, Match, Matches		' 建立变量。
  Set regEx = New RegExp			' 建立正则表达式。
  regEx.Pattern = patrn			' 设置模式。
  regEx.IgnoreCase = True			' 设置是否区分字母的大小写。
  regEx.Global = True			' 设置全程可用性。
  Set Matches = regEx.Execute(strng)	' 执行搜索。
  For Each Match in Matches		' 遍历Matches集合。
    RetStr = RetStr & "Match " & I & " found at position "
    RetStr = RetStr & Match.FirstIndex & ". Match Value is "'
    RetStr = RetStr & Match.Value & "'." & vbCRLF
  Next
  RegExpTest = RetStr
End Function

MsgBox(RegExpTest("is.", "IS1 is2 IS3 is4"))


Value 属性

Value 属性
应用于 		语言参考

Match 对象


Value 属性

Value 属性
请参阅 		语言参考

FirstIndex 属性
Length 属性


VolumeName 属性

VolumeName 属性 		Scripting 运行时参考
版本 3

请参阅 应用于

描述
设置或返回指定驱动器的卷标。可读写。
语法
object.VolumeName [= newname]

VolumeName 属性的语法有以下部分：

部分 | 描述
object | 必选。应为 Drive 对象的名称。
newname | 可选。如果提供此参数，则 newname 为指定的 object 的新名称。

说明
以下代码举例说明如何使用 VolumeName 属性：
Function ShowVolumeInfo(drvpath)
    Dim fso, d, s
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set d = fso.GetDrive(fs.GetDriveName(fso.GetAbsolutePathName(drvpath)))
    s = "驱动器 " & d.DriveLetter & ": - " & d.VolumeName
ShowVolumeInfo = s
End Function


VolumeName 属性

VolumeName 属性
应用于 		Scripting 运行时参考

Drive 对象


VolumeName 属性

VolumeName 属性
请参阅 		Scripting 运行时参考

AvailableSpace 属性
DriveLetter 属性
DriveType 属性
FileSystem 属性
FreeSpace 属性
IsReady 属性
Path 属性
RootFolder 属性
SerialNumber 属性
ShareName 属性
TotalSize 属性


Call 语句

Call 语句 		语言参考
版本 1

描述
将控制权传递给 Sub 或 Function 过程。
语法
[Call] name [argumentlist]

Call 语句语法有以下部分：

部分 | 描述
Call 可选关键字。如果指定此关键字，则必须用括号把 argumentlist 括起来。例如：

Call MyProc(0)

name | 必选。要调用的过程名。
argumentlist | 可选。传递给过程的变量、数组或表达式列表，用逗号分隔每一项。

说明
在调用过程时，不必使用 Call 关键字。然而，如果使用 Call 关键字调用要求参数的过程，则必须用括号将 argumentlist 括起来。如果省略 Call 关键字，那么必须也同时省略 argumentlist 参数两边的括号。使用 Call 语法调用内部函数或使用用户自定义函数，函数返回值都会被放弃。
Call MyFunction("Hello World")

Function MyFunction(text)
    MsgBox text
End Function


Class 语句

Class 语句 		语言参考
版本 5

请参阅

说明
声明一个类的名称，以及组成该类的变量、属性和方法的定义。
语法
Class name
statements
End Class

Class 语句的语法包括以下部分：

部分 | 描述
name | 必需的。Class 的名称；遵照标准的变量命名约定。
statements | 必需的。一个或多个语句，定义了 Class 的变量、属性和方法。

说明
在 Class 块中，成员通过相应的声明语句被声明为 Private 或 Public。被声明为 Private 的将只在 Class 块内是可见的。被声明为 Public 不仅在 Class 块的内部是可见的，对 Class 块之外的代码也是可见的。没有使用 Private 或 Public 明确声明的被默认为 Public。 在类的块内部被声明为 Public 的过程 (Sub 或 Function)将成为类的方法。Public 变量将成为类的属性，同使用 Property Get、Property Let 和 Property Set 显式声明的属性一样。 类的缺省属性和方法是在它们的声明部分用 Default 关键字指定的。关于如何使用该关键字，请参考单独的声明语句主题。


Class 语句

Class 语句
请参阅 		语言参考

Dim 语句
Function 语句
Private 语句
Property Get 语句
Property Let 语句
Property Set 语句
Public 语句
Set 语句
Sub 语句


Const 语句

Const 语句 		语言参考
版本 2

请参阅

描述
声明用于代替文字值的常数。
语法
[Public | Private] Const constname = expression

Const 语句的语法包含以下部分：

部分 | 描述
Public | 可选。该关键字用于在 Script 级中声明可用于所有脚本中所有过程的常数。不允许在过程中使用。
Private | 可选。该关键字用于在脚本级中声明只可用在声明所在的脚本中的常数。不允许在过程中使用。
constname | 必选。常数的名称，根据标准的变量命名约定。
expression | 必选。文字或其他常数，或包括除 Is 外的所有算术运算符和逻辑运算符的任意组合。

说明
在默认情况下常数是公用的。过程中的常数总是专有的，其可见性无法改变。Script 中，可用 Private 关键字来改变脚本级常数可见性的默认值。

要在同一行中声明若干个常数，可用逗号将每个常数赋值分开。用这种方法声明常数时，如果使用了 Public 或 Private 关键字，则该关键字对该行中所有常数都有效。

常数声明中不能使用变量、用户自定义的函数或 VBScript 内部函数（如 Chr)。按定义，它们不能是常数。另外也不能从含有运算符的表达式中创建常数，即只允许使用简单常数。在 Sub 或 Function 过程中声明的常数是该过程的局部常数。在过程外声明的常数是声明所在的脚本中的全局常数。可以在任何使用表达式的地方使用常数。下面代码举例说明如何使用 Const 语句:

Const MyVar = 459					' 常数默认为 公有。
Private Const MyString = "HELP"			' 定义私有常数。
Const MyStr = "Hello", MyNumber  = 3.4567	'在一行上定义多个常数。
注意 常数能使脚本自己支持并且容易修改。不像变量，脚本在运行时，常数不能被无意中修改。


Const Óï¾ä

Const Óï¾ä
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Dim Óï¾ä
Function Óï¾ä
Private Óï¾ä
Public Óï¾ä
Sub Óï¾ä


Dim 语句

Dim 语句 		语言参考
版本 1

请参阅

描述
声明变量并分配存储空间。
语法
Dim varname[([subscripts])][, varname[([subscripts])]] . . .

Dim 语句的语法包含以下部分：

部分 | 描述
varname | 变量的名称，符合标准变量命名约定。
subscripts 数组变量的维数，最多可以声明 60 维的数组。subscripts 参数使用以下语法：

upperbound [,upperbound] . . .

数组下界总是 0。

说明
用 Dim 声明的 Script 级变量可用于脚本中的所有过程，过程级变量只能用于过程中。

也可用带空圆括号的 Dim 语句来声明动态数组。声明动态数组后，可在过程内使用 ReDim 语句来定义该数组的维数和元素。如果试图重新定义在 Dim 语句中已经显式指定维数的数组，则会发生错误。

提示 在过程中使用 Dim 语句时，通常将 Dim 语句放在过程的开始处。

下面例子举例说明如何使用 Dim 语句:

Dim Names(9)     '声明一个具有 10 个元素的数组。
Dim Names()      ' 声明动态数组。
Dim MyVar, MyNum ' 声明两个变量。


Dim Óï¾ä

Dim Óï¾ä
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Private Óï¾ä
Public Óï¾ä
ReDim Óï¾ä
Set Óï¾ä


Do...Loop 语句

Do...Loop 语句 		语言参考
版本 1

请参阅

描述
当条件为 True 时或条件变为 True 之前重复执行某语句块。
语法
Do [{While | Until} condition]
[statements]
[Exit Do]
[statements]
Loop

也可以使用下面的语法：

Do
[statements]
[Exit Do]
[statements]
Loop [{While | Until} condition]

Do...Loop 语句语法有以下部分：

部分 | 描述
condition | 数值或字符串表达式，其值为 True 或 False。如果 condition 为 Null，则 condition 被当作 False。
statements | 当 condition 为 True 时被重复执行的一条或多条命令。

说明
Exit Do 仅可以用在 Do...Loop 控制语句中，提供另一种退出 Do...Loop 的方法。可以在 Do...Loop 语句中的任何位置放置任意个 Exit Do。Exit Do 通常与条件判断语句（如 If...Then ）一起使用，将控制传递给紧随在 Loop 语句后面的语句。

当用于嵌套 Do...Loop 中的时候，Exit Do 将控制传递给其所在循环的上一层嵌套循环。

下面例子举例说明如何使用 Do...Loop 语句:

Do Until DefResp = vbNo
  MyNum = Int (6 * Rnd + 1)	'  产生 1 到 6 之间的随机数。
  DefResp = MsgBox (MyNum & " 想要另一个数吗？", vbYesNo)
Loop

Dim Check, Counter
Check = True: Counter = 0		' 初始化变量。
Do					'外层循环。
  Do While Counter < 20		'内层循环。
    Counter = Counter + 1		' 增加计数器。
    If Counter = 10 Then		' 如果条件为 True...
      Check = False			' 将标志值设置为 False。
      Exit Do			' 终止内层循环。
    End If
  Loop
Loop Until Check = False		' 立即终止外层循环。


Do...Loop Óï¾ä

Do...Loop Óï¾ä
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Exit Óï¾ä
For...Next Óï¾ä
While...Wend Óï¾ä


Erase 语句

Erase 语句 		语言参考
版本 1

请参阅

描述
重新初始化固定大小数组的元素，并释放动态数组的存储空间。
语法
Erase array

array 参数是要清除的数组变量的名称。

说明
判断数组是固定长度数组（常规）还是动态数组是很重要的，这是因为 Erase 要根据数组的类型进行不同的操作。Erase 无需为固定大小的数组还原内存。Erase 按照下表设置固定数组的元素：

数组的类型 | Erase 对固定数组元素的影响
固定数值数组 | 将每个元素设置为 0。
固定字符串数组 | 将每个元素设置为零长度字符串 ("")。
对象数组 | 将每个元素设置为特殊值 Nothing。

Erase 释放动态数组所使用的内存。在程序再次引用该动态数组之前，必须使用 ReDim 语句来重新定义该数组变量的维数。

下面例子举例说明如何使用 Erase 语句:

Dim NumArray(9)
Dim DynamicArray()
ReDim DynamicArray(9)  '分配存储空间。
Erase NumArray         ' 每一元素都被重新初始化。
Erase DynamicArray     '释放数组占用的内存。


Erase Óï¾ä

Erase Óï¾ä
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Dim Óï¾ä
Nothing
ReDim Óï¾ä


Execute 语句

Execute 语句 		语言参考
版本 5

请参阅

描述
执行一个或多个指定的语句。
语法
Execute statements

所需要的 statements 参数是一个字符串表达式，其中包含一个或多个要执行的语句。 如果要在 statements 参数中包含多条语句，应使用分号或嵌入的分行将其分隔开。

说明
在 VBScript 中，x = y 可以有两种解释。首先是作为赋值语句，将 y 的值赋予 x。其次是作为表达式，测试x 和 y 的值是否相等。如果相等，结果为 True；否则，结果为 False。Execute 语句总是使用第一种解释，而 Eval 方法总是使用第二种。

注意 在 Microsoft(R) JScript 中并不存在赋值与比较之间的混淆，因为赋值运算符(=)与比较运算符(==)是不同的。

调用 Execute 语句的上下文确定了要运行的代码可以使用的对象和变量。作用域内的对象和变量是 Execute 语句中运行的代码可以使用的。不过，必须明白的一点是，如果被执行的代码创建了过程，那么该过程将不会继承它所在的过程的作用域。

与其他过程类似，新的过程的作用域是全局的，它继承了全局作用域的全部东西。与其他过程不同的是，它的上下文不是全局作用域，因此它只能在发生 Execute 语句的过程内的上下文中执行。不过，如果相同的 Execute 语句是在过程之外(例如在全局作用域)的作用域中被调用，那么它将不仅继承全局作用域中的所有东西，而且它还可以在任何地方被调用，因为它的上下文是全局的。下面的例子说明了这种特点：

Dim X			' 在全局作用域中声明 X。
X = "Global"		' 将全局的 X 赋值。
Sub Proc1	' 声明过程。
  Dim X		' 在局部作用域中声明 X。
  X = "Local"	' 对局部的 X 赋值。
            ' 此处的 Execute 语句建立了一个过程，
            ' 在调用该过程时它将打印 X。
            ' 它打印的将是全局 X，因为 Proc2
            ' 继承了全局作用域中的一切。
  Execute "Sub Proc2: Print X: End Sub"
  Print Eval("X")	' 打印本地 X。
  Proc2		' 在 Proc1 的作用域中调用 Proc2。
End Sub
Proc2			' 本行将导致一个错误，因为
            ' Proc2 在 Proc1 之外是不可使用的。
Proc1			' 调用 Proc1。
  Execute "Sub Proc2: Print X: End Sub"
Proc2			' 这句话可以成功，因为 Proc2
            ' 现在是全局可用的。
下面的例子显示了如何将 Execute 语句改写，免于将整个过程包含在引号内：

S = "Sub Proc2" & vbCrLf
S = S & "  Print X" & vbCrLf
S = S & "End Sub"
Execute S


Execute 语句

Execute 语句
请参阅 		语言参考

Eval 函数


Exit 语句

Exit 语句 		语言参考
版本 1

请参阅

描述
退出 Do...Loop、For...Next、Function 或 Sub 代码块。
语法
Exit Do

Exit For

Exit Function

Exit Property

Exit Sub

Exit 语句的语法有以下几种形式：

语句 | 描述
Exit Do | 提供一种退出 Do...Loop 语句的方法。只能在 Do...Loop 语句中使用。Exit Do 将控制权转移到 Loop 语句之后的语句。在嵌套的 Do...Loop 语句中使用时，Exit Do 将控制权转移到循环所在位置的上一层嵌套循环。
Exit For | 提供一种退出 For 循环的方法。只能在 For...Next 或 For Each...Next 循环中使用。Exit For 将控制权转移到 Next 之后的语句。在嵌套的 For 循环中使用时，Exit For 将控制权转移到循环所在位置的上一层嵌套循环。
Exit Function | 立即从出现的位置退出 Function 过程。继续执行调用 Function 的语句后面的语句。
Exit Property | 立即从所在的 Property 过程中退出。继续执行下面调用 Property 过程的语句。
Exit Sub | 立即从出现的位置退出 Sub 过程，继续执行调用 Sub 的语句后面的语句。

下面例子举例说明如何使用 Exit 语句:

Sub RandomLoop
  Dim I, MyNum
  Do                           ' 设置死循环。
    For I = 1 To 1000          ' 循环 1000 次。
      MyNum = Int(Rnd * 100)   '产生随机数。
      Select Case MyNum        '求随机数的值。
        Case 17: MsgBox "Case 17"
          Exit For             ' 如果是 17，退出 For...Next。
        Case 29: MsgBox "Case 29"
          Exit Do              ' 如果是 29，退出 Do...Loop。
        Case 54: MsgBox "Case 54"
          Exit Sub             ' 如果是 54，退出 Sub 过程。
        End Select
    Next
  Loop
End Sub


Exit Óï¾ä

Exit Óï¾ä
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Do...Loop Óï¾ä
For Each...Next Óï¾ä
For...Next Óï¾ä
Function Óï¾ä
Sub Óï¾ä


For...Next 语句

For...Next 语句 		语言参考
版本 1

请参阅

描述
以指定次数重复执行一组语句。
语法
For counter = start To end [Step step]
[statements]
[Exit For]
[statements]
Next

For...Next 语句的语法包含以下部分：

部分 | 描述
counter | 用做循环计数器的数值变量。这个变量不能是数组元素或用户自定义类型的元素。
start | counter 的初值。
end | counter 的终值。
step | counter 的步长。如果没有指定，则 step 的默认值为 1。
statements | For 和 Next 之间的一条或多条语句，将被执行指定次数。

说明
step 参数可以是正数或负数。step 参数值决定循环的执行情况，如下所示：

值 | 如果 ... 则循环执行
正数或 0 | counter <= end
负数 | counter >= end

当循环启动并且所有循环中的语句都执行后，step 值被加到 counter 中。这时，或者循环中的语句再次执行（基于循环开始执行时同样的测试），或者退出循环并从 Next 语句之后的语句继续执行。

提示 在循环体内改变 counter 的值，将会使程序代码的阅读和调试变得更加困难。

Exit For 只能用于 For Each...Next 或 For...Next 结构中，提供另一种退出循环的方法。可在语句中的任意位置放置任意个 Exit For 语句。Exit For 经常和条件判断语句一起使用（例如 If...Then），并立即将控制权转移到 Next 之后的语句。

可以将一个 For...Next 循环放置在另一个 For...Next 循环中，组成嵌套循环。每个循环中的 counter 要使用不同的变量名。下面的结构是正确的：

For I = 1 To 10
    For J = 1 To 10
        For K = 1 To 10
        . . .
        Next
    Next
Next


For...Next Óï¾ä

For...Next Óï¾ä
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Do...Loop Óï¾ä
Exit Óï¾ä
For Each...Next Óï¾ä
While...Wend Óï¾ä


For Each...Next 语句

For Each...Next 语句 		语言参考
版本 2

请参阅

描述
对数组或集合中的每个元素重复执行一组语句。
语法
For Each element In group
[statements]
[Exit For]
[statements]
Next [element]

For Each...Next 语句的语法包含以下部分：

部分 | 描述
element | 用来枚举集合或数组中所有元素的变量。对于集合，element 可能是 Variant 变量、通用 Object 变量或任意指定的 Automation 对象变量。对于数组，element 只能是 Variant 变量。
group | 对象集合或数组的名称。
statements | 对于 group 中的每一项执行的一条或多条语句。

说明
如果 group 中有至少一个元素，就会进入 For Each 块执行。一旦进入循环，便首先对 group 中第一个元素执行循环中的所有语句。只要 group 中还有其他的元素，就会对每个元素执行循环中的语句。当 group 中的没有其他元素时退出循环，然后从 Next 语句之后的语句继续执行。

Exit For 只能用于 For Each...Next 或 For...Next 控制结构中，提供另一种退出循环的方法。可在循环的任意位置放置任意个 Exit For 语句。Exit For 经常和条件判断语句一起使用（例如 If...Then），并立即将控制权转移到 Next 之后的语句。

可以将一个 For Each...Next 循环放置在另一个之中，组成嵌套式 For Each...Next 循环。但是每个循环的 element 必须是唯一的。

注意 如果省略 Next 语句中的 element，则程序仍会象已包含它一样继续执行。如果 Next 语句在其相应的 For 语句之前出现，则会产生错误。

下面例子举例说明如何使用 For Each...Next 语句:

Function ShowFolderList(folderspec)
  Dim fso, f, f1, fc, s
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set f = fso.GetFolder(folderspec)
  Set fc = f.Files
  For Each f1 in fc
    s = s & f1.name
    s = s & "<BR>"
  Next
  ShowFolderList = s
End Function


For Each...Next Óï¾ä

For Each...Next Óï¾ä
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Do...Loop Óï¾ä
Exit Óï¾ä
For...Next Óï¾ä
While...Wend Óï¾ä


Function 语句

Function 语句 		语言参考
版本 1

请参阅

描述
声明 Function 过程的名称、参数以及构成其主体的代码。
语法
[Public [Default]| Private] Function name [(arglist)]
[statements]
[name = expression]
[Exit Function]
[statements]
[name = expression]
End Function

Function 语句的语法包含以下部分：

部分 | 描述
Public | 表示 Function 过程可被所有脚本中的所有其他过程访问。
Default | 只与 Class 块中的 Public 关键字一起使用 来表示 Function 过程是类的默认方法。如果在一个类中指定了不止一个 Default 过程，就有错误发生。
Private | 表示 Function 过程只可被声明它的脚本中的其他过程访问或者如果函数是一个数据类，那么 Function 过程只能被该类中的其他过程访问。
name | Function 的名称，遵循标准的变量命名约定。
arglist | 代表调用时要传递给 Function 过程的参数的变量列表。用逗号隔开多个变量。
statements | 在 Function 过程的主体中执行的任意语句组。
expression | Function 的返回值。

arglist 参数包含下列语法和部分：

[ByVal | ByRef] varname[( )]

部分 | 描述
ByVal | 表示该参数是按值传递的。
ByRef | 表示该参数按引用传递。
varname | 代表参数变量的名称；遵循标准的变量命名约定。

说明
如没有显式指定使用 Public 或 Private，则 Function 过程默认为公用，即它们对于脚本中的所有其他过程是可见的。Function 中局部变量的值在对 过程的调用中不被保留。

不能在任何其他过程（例如，Sub 或 Property Get）中定义 Function 过程。

使用 Exit Function 语句可以从 Function 过程中立即退出。程序继续执行调用 Function 过程的语句之后的语句。可在 Function 过程的任何位置出现任意个 Exit Function 语句。

与 Sub 过程类似，Function 过程是可以获取参数、执行一系列语句并改变其参数值的独立过程。与 Sub 过程的不同之处是：当要使用由函数返回的值时，可以在 表达式的右边使用 Function 过程，这与内部函数的使用方式一样，例如 Sqr、Cos 或 Chr。

在表达式中，可以通过使用函数名，并在其后用圆括号给出相应的参数列表来调用 Function 过程。有关调用 Function 过程的详细信息，请参阅 Call 语句。

小心 Function 过程可以是递归的，即该过程可以调用自身以完成某个给定的任务。但是，递归可能会导致堆栈溢出。

要从函数返回一个值，只需将值赋给函数名。在过程的任意位置都可以出现任意个这样的赋值。如果没有给 name 赋值, 则过程将返回一个默认值：数值函数返回 0，字符串函数返回零长度字符串 ("")。如果在 Function 中没有对象引用被指定给 name（使用 Set)，则返回对象引用的函数将返回 Nothing。

下面的样例说明如何给一个名为 BinarySearch 的函数赋返回值。在此样例中，将 False 赋给了该函数名，表示没有找到某个值。

Function BinarySearch(. . .)
    . . .
    ' 未找到该值。返回 False 值。
    If lower > upper Then
        BinarySearch = False
        Exit Function
    End If
    . . .
End Function
在 Function 过程中使用的变量分为两类：一类是在过程内显式声明的，另一类则不是。在过程内显式声明的变量（使用 Dim 或等效方法）总是过程的局部变量。被使用但没有在过程中显式声明的变量也是局部变量，除非在该过程外更高级别的位置显式声明它们。

小心 过程可以使用没有在过程内显式声明的变量，但如果在脚本级中任何定义的名称与之相同，则会发生名称冲突。如果过程中使用的未声明的变量与另一个过程、常数或变量的名称相同，则会认为过程使用的是脚本级的名称。要避免这类冲突，可以使用 Option Explicit 语句来强制显式声明变量。

小心 VBScript 可能会重新排列数学表达式以提高内部效率。当 Function 过程修改数学表达式中变量的值时，应避免在同一表达式中使用该函数。


Function Óï¾ä

Function Óï¾ä
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Call Óï¾ä
Dim Óï¾ä
Exit Óï¾ä
Nothing
Set Óï¾ä
Sub Óï¾ä


If...Then...Else 语句

If...Then...Else 语句 		语言参考
版本 1

描述
根据表达式的值有条件地执行一组语句。
语法
If condition Then statements [Else elsestatements ]

或者，使用块形式的语法：

If condition Then
[statements]
[ElseIf condition-n Then
[elseifstatements]] . . .
[Else
[elsestatements]]
End If

If...Then...Else 语句的语法包含以下部分：

部分 | 描述
condition 一个或多个下面两种类型的表达式：

数值或字符串表达式，其运算结果是 True 或 False。如果 condition 是 Null，则 condition 被视为 False。

形如 TypeOf objectname Is objecttype 的表达式。objectname 是任何对象的引用，而 objecttype 则是任何有效的对象类型。如果 objectname 是 objecttype 所指定的一种对象类型，则表达式为 True；否则为 False。

statements | 如果 condition 为 True 时，执行的一条或多条（以冒号分开）语句。
condition-n | 同 condition。
elseifstatements | 如果相关的 condition-n 为 True时，执行的一条或多条语句。
elsestatements | 如果前面没有 condition 或 condition-n 表达式为 True 时，执行的一条或多条语句。

说明
对于短小简单的测试，可以使用单行形式（第一种语法）。但块形式（第二种语法）提供了比单行形式更强的结构化与适应性，比较容易阅读、维护及调试。

注意 在单行语法中，可以执行多条语句作为 If...Then 判断的结果，但所有语句必须在同一行上并且以冒号分开，如下列语句所示：
If A > 10 Then A = A + 1 : B = B + A : C = C + B

当程序运行到 If 块（第二种语法）时，将测试 condition。如果 condition 是 True，则执行 Then 之后的语句。如 condition 是 False，则每个 ElseIf 部分的条件式（如果有的话）会依次计算并加以测试。当找到某个为 True 的条件时，则其相关的 Then 之后的语句会被执行。如没有一个 ElseIf 语句是 True（或没有 ElseIf 子句），则将执行 Else 之后的语句。执行 Then 或 Else 之后的语句以后，将继续执行 End If 之后的语句。

Else 和 ElseIf 子句都是可选的。在 If 块中可以放置任意多个 ElseIf 子句，但是都必须在 Else 子句之前。If 块语句可以被嵌套，即被包含在另一个 If 块语句之中。

要判断某个语句是否是一个 If 块，可检查 Then 关键字之后是什么。如果在 Then 的同一行之后还有其他非注释的内容，则此语句就是单行形式的 If 语句。

If 块语句必须是某一行的第一条语句，并且必须以 End If 语句结束。


On Error 语句

On Error 语句 		语言参考
版本 1

请参阅

描述
启动错误处理程序。
语法
On Error Resume Next
说明
若不使用 On Error Resume Next 语句，发生的任何运行时错误都将是致命的，即，显示错误信息并终止运行。

On Error Resume Next 会使程序从紧随产生错误的语句之后的语句继续执行，或是从紧随最近一次调用过程（该过程含有 On Error Resume Next 语句）的语句继续运行。这个语句可以不顾运行时错误，继续执行程序，之后您可以在过程内部建立错误处理例程。在调用另一个过程时，On Error Resume Next 语句变为非活动的。所以，如果希望在例程中进行内部错误处理，则应在每一个调用的例程中执行 On Error Resume Next 语句。

下面例子举例说明如何使用 On Error Resume Next 语句:

On Error Resume Next
Err.Raise 6  '产生溢出错误。
MsgBox ("Error # " & CStr(Err.Number) & " " & Err.Description)
Err.Clear    '清除错误。


On Error Óï¾ä

On Error Óï¾ä
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Err ¶ÔÏó
Exit Óï¾ä


Option Explicit 语句

Option Explicit 语句 		语言参考
版本 1

描述
强制要求显式声明脚本中的所有变量。
语法
Option Explicit
说明
如果使用 Option Explicit，该语句必须出现在脚本的任何其他语句之前。

使用 Option Explicit 语句时，必须使用 Dim、Private、Public 或 ReDim 语句显式声明所有变量。如果试图使用未经声明的变量名，则会出现错误。

提示 可用 Option Explicit 避免拼错已存在的变量名称。对于作用范围不清楚的变量，使用此语句可避免发生混淆。

下面例子举例说明如何使用 Option Explicit 语句:

Option Explicit    ' 强制显示声明变量。
Dim MyVar          '声明变量。
MyInt = 10         '未声明变量产生错误。
MyVar = 10         '声明变量不产生错误。


Private 语句

Private 语句 		语言参考
版本 2

请参阅

描述
定义私有变量并分配存储空间。在 Class块中定义私有变量。
语法
Private varname[([subscripts])][, varname[([subscripts])]] . . .

Private 语句的语法包含以下部分：

部分 | 描述
varname | 变量的名称；遵循标准变量命名约定。
subscripts 数组变量的维数，最多可以声明 60 维的数组。subscripts 参数使用下列语法：

upper [, upper] . . .

数组的下界总是 0。

说明
Private 语句变量只能在声明该变量的脚本中使用。

在使用引用对象的变量之前，必须用 Set 语句将某个现有对象赋予此变量。在赋值之前，所声明的对象变量被初始化Empty。

也可用带空圆括号的 Private 语句声明动态数组。声明动态数组后，可在过程内使用 ReDim 语句定义该数组的维数和元素。如果在 Private、Public 或 Dim 语句中已显式指定数组大小，却试图重新声明数组维数，就会发生错误。

提示 在过程中使用 Private 语句时，通常将 Private 语句放在过程的开始处。

下面例子举例说明如何使用 Private 语句:

Private MyNumber '不同的私有变量。
Private MyArray(9)   '私有数组变量。
' 声明多个不同的私有变量。
Private MyNumber, MyVar, YourNumber


Private Óï¾ä

Private Óï¾ä
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Dim Óï¾ä
Public Óï¾ä
ReDim Óï¾ä
Set Óï¾ä


Property Get 语句

Property Get 语句 		语言参考
版本 5

请参阅

描述
在 Class 块中，声明构成用来取得（返回）属性的值的属性过程的主体的名称、参数和代码。
语法
[Public [Default]| Private] Property Get name [(arglist)]
[statements]
[[Set] name = expression]
[Exit Property]
[statements]
[[Set] name = expression]
End Property

Property Get 语句的语法包含以下几个部分：

部分 | 描述
Public | 表明Property Get 过程可以被所有脚本中的其他过程访问。
Default | 只与 Public 关键字一起使用，表明 Property Get 过程中定义的属性为类的缺省属性。
Private | 表明 Property Get 过程只对定义它的 Class 块中的其他过程是可以访问的。
name | Property Get 过程的名称；遵守标准的变量命名规则，区别仅仅在于它可以与同一Class块中的Property Let 或 Property Set过程。
arglist | 该变量列表代表了 Property Get 过程被调用时传递给它的参数。多个参数之间用逗号分隔开。Property Get 过程中的每个参数的名称必须与 Property Let 过程中的相应参数相同(如果有的话)。
statements | 任意的一组语句，将在 Property Get 过程的主体中执行。
Set | 在将对象作为 Property Get 过程的返回值时使用的关键字。
expression | Property Get 过程的返回值。

说明
如果未使用 Public 或 Private明确声明，则 Property Get 过程被缺省为公有的，即它们对于脚本中的其他所有过程都是可见的。Property Get过程中的局部变量的值在不同的过程调用之间是不保存的。

在其他任何过程(例如 Function 或 Property Let) 内部都不能定义 Property Get 过程。

Exit Property 语句将导致立即从 Property Get 过程中退出。程序将继续执行调用 Property Get 过程的语句之后的程序。Exit Property 语句可以出现在 Property Get 过程中的任何位置，次数不限。

与Sub 和 Property Let 过程类似，Property Get 过程是能够接受参数的过程，可以执行一系列的语句，以及改变参数的值。然而，与Sub 和 Property Let 不同的是，Property Get 过程可以被用于表达式的右侧，用与使用Function 或属性名称相同的方式来返回属性的值。


Property Get 语句

Property Get 语句
请参阅 		语言参考

Class 语句
Dim 语句
Exit 语句
Function 语句
Private 语句
Property Let 语句
Property Set 语句
Public 语句
Set 语句
Sub 语句


Property Let 语句

Property Let 语句 		语言参考
版本 5

请参阅

描述
在 Class 块中，声明名称、参数和代码等，它们构成了赋值（设置）属性的 Property 过程的主体。
语法
[Public | Private] Property Let name ([arglist,] value)
[statements]
[Exit Property]
[statements]
End Property

Property Let 语句的语法包含以下部分：

部分 | 描述
Public | 表明 Property Let 过程可以被所有脚本中的其他所有过程访问。
Private | 表明 Property Let 过程只能被定义之的 Class 块内的其他过程访问。
name | Property Let 过程的名称；遵守标准的变量命名规则，区别仅仅在于其名称可以与相同 Class 块中的 Property Get 或 Property Set 过程相同。
arglist | 该变量列表代表了在调用时被传递到 Property Let 过程的参数。多个参数之间用逗号隔开。Property Let 过程的每个参数的名字必须与 Property Get 过程中的相应参数相同。此外， Property Let 过程的参数比相应的 Property Get 过程总要多一个。该参数为被赋予属性的值。
value | 该变量中包含要赋予属性的值。当过程被调用时，该参数将出现在调用表达式的右侧。
statements | 任意的一组语句，将在 Property Let 过程的主体内执行。

注意 每个 Property Let 语句必须为所定义的属性定义至少一个参数。该参数（在存在多个参数时的最后一个参数）包含了当 Property Let 语句被调用时要赋予属性的值。该参数在前面的语法中被称为value。

说明
如果未明确地使用 Public 或 Private进行指定，Property Let 过程被缺省设置为公有的，即它们对于脚本内的其他所有过程都是可见的。Property Let过程中的局部变量的值在不同的过程调用之间是不被保存的。

在其他任何过程（例如 Function 或 Property Get）的内部不能够定义 Property Let 过程。

Exit Property 语句将导致立即从 Property Let 过程中退出。程序将从调用 Property Let 过程的语句之后的点继续执行。Exit Property 语句可以出现在 Property Let 过程中的任何位置，次数不限。

与 Function 和 Property Get 过程类似，Property Let 过程是一个单独的过程，它可以接受参数，执行一系列的语句，还可以改变参数的值。不过，与Function 和 Property Get 过程不同的是，它们两者都返回一个值，而Property Let过程只能用于属性赋值表达式的左侧。


Property Let 语句

Property Let 语句
请参阅 		语言参考

Class 语句
Dim 语句
Exit 语句
Function 语句
Private 语句
Property Get 语句
Property Set 语句
Public 语句
Set 语句
Sub 语句


Property Set 语句

Property Set 语句 		语言参考
版本 5

请参阅

描述
在 Class 块中，声明名称、参数和代码，这些构成了将引用设置到对象的 Property 过程的主体。
语法
[Public | Private] Property Set name([arglist,] reference)
[statements]
[Exit Property]
[statements]
End Property

Property Set 语句的语法包含以下几个部分：

部分 | 描述
Public | 表明 Property Set 过程可以被所有脚本中的其他所有过程访问。
Private | 表明 Property Set 过程只能被声明之的同一 Class 块中的其他过程访问。
name | Property Set 过程的名称；遵守标准的变量命名规则，不过该名称可以与同一个 Class 块中的 Property Get 或 Property Let 过程相同。
arglist | 变量列表，代表在 Property Set 过程被调用时传递给它的参数。多个参数之间用逗号分隔开。此外，Property Set 过程将总是比它相应的 Property Get 过程多一个参数。这个多出来的参数是被赋予属性的对象。
reference | 变量，其中包含被用于对象引用赋值的右侧的对象引用。
statements | 将要在 Property Set 过程主体中执行的任何一组语句。

注意 每个 Property Set 语句都必须为所定义的过程定义至少一个参数。当 Property Set 语句所定义的过程被调用时，该必需参数（在多个参数时为最后一个参数）中将为属性提供实际的对象引用。在前面的语法中，该参数被称为引用。

说明
除非使用 Public 或 Private 明确地进行指定，否则 Property Set 过程被设置为缺省的公有模式，即脚本中的其他所有过程都是可见的。在不同的过程调用时，Property Set 过程中的局部变量是不保存的。

在其他任何过程（例如Function或Property Let）中都不能够定义Property Set过程。

Exit Property 语句将导致立即从 Property Set 过程中退出。程序将继续执行调用 Property Set 过程之后的语句。Exit Property 语句的数量不受限制，可以出现在 Property Set 过程中的任何位置。

与 Function 和 Property Get 过程类似，Property Set 过程是一个单独的过程，它可以有若干参数，执行一系列的语句，还可以改变参数的值。然而，与 Function 和 Property Get 过程不同的是，函数和过程都可以返回值，而 Property Set 过程对象引用赋值（Set 语句）的左侧。


Property Set 语句

Property Set 语句
请参阅 		语言参考

Class 语句
Dim 语句
Exit 语句
Function 语句
Private 语句
Property Get 语句
Property Let 语句
Public 语句
Set 语句
Sub 语句


Public 语句

Public 语句 		语言参考
版本 2

请参阅

描述
定义公有变量并分配存储空间。在 Class 块中定义私有变量。
语法
Public varname[([subscripts])][, varname[([subscripts])]] . . .

Public 语句的语法包含以下部分：

部分 | 描述
varname | 变量的名称，遵循标准变量命名约定。
subscripts 数组变量的维数；最多可以声明 60 维的数组。 subscripts 参数使用下列语法：

upper [,upper] . . .

数组的下界总是 0。

说明
Public语句变量可用于全部脚本中的所有过程。

在使用引用对象的变量之前，必须用 Set 语句将某个已有对象赋予该变量。在赋值之前，所声明的对象变量被初始化为 Empty。

也可用带空圆括号的 Public 语句来声明动态数组。声明动态数组后，可在过程内使用 ReDim 语句来定义该数组的维数和元素。如果试图重新声明数组变量的维数，且此数组变量的大小已在 Private、Public 或 Dim 语句中显式地指定，则会发生错误。

下面例子举例说明如何使用 Public 语句:

Public MyNumber '不同的公有变量。
Public MyArray(9) '公有数组变量。
' 声明多个不同的公有变量。
Public MyNumber, MyVar, YourNumber


Public Óï¾ä

Public Óï¾ä
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Dim Óï¾ä
Private Óï¾ä
ReDim Óï¾ä
Set Óï¾ä


Randomize 语句

Randomize 语句 		语言参考
版本 1

请参阅

描述
初始化随机数生成器。
语法
Randomize [number]

number 参数可以是任何有效的数值表达式。

说明
Randomize 使用 number 参数初始化 Rnd 函数的随机数生成器，赋给它新的种子值。如果省略 number，则使用系统计时器返回的值作为新的种子值。

如果不使用 Randomize，则第一次调用 Rnd 函数（无参数）时，它将使用相同的数字作为种子值，随后使用最后生成的数值作为种子值。

注意 要重复随机数的序列，请在使用数值参数调用 Randomize 之前，立即用负值参数调用 Rnd。使用相同的 number 值的 Randomize 不能重复先前的随机数序列。

下面例子举例说明如何使用 Randomize 语句:

Dim MyValue, Response
Randomize '初始化随机数生成器。

Do Until Response = vbNo
   MyValue = Int((6 * Rnd) + 1)' 产生 1 到 6 之间的随机数。
   MsgBox MyValue
   Response = MsgBox ("Roll again? ", vbYesNo)
Loop


Randomize Óï¾ä

Randomize Óï¾ä
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Rnd º¯Êý
Timer º¯Êý


ReDim 语句

ReDim 语句 		语言参考
版本 1

请参阅

描述
在过程级中声明动态数组变量并分配或重新分配存储空间。
语法
ReDim [Preserve] varname(subscripts) [, varname(subscripts)] . . .

ReDim 语句语法有以下部分：

部分 | 描述
Preserve | 当更改现有数组最后一维的大小时保留数据。
varname | 变量名，遵循标准变量命名约定。
subscripts 数组变量的维数，最多可以声明 60 维数组。subscripts 参数语法格式如下：

upper [,upper] . . .

数组的下界总是零。

说明
ReDim 语句通常用于指定或修改动态数组的大小，这些数组已用带有空括号的 Private、Public 或 Dim 语句（没有维数下标）正式声明过。可以重复使用 ReDim 语句更改数组维数和元素数目。

如果使用了 Preserve 关键字，就只能调整数组最后维的大小，并且不能改变数组的维数。例如，如果数组只有一维，就可以修改该数组的大小，因为该维是最后的也是仅有的一维。但是，如果数组有两个或更多维，就只能改变末维的大小并保留数组内容。

这个例子说明如何不擦掉该数组中存在的数据，而增加动态数组的终止维数。

ReDim X(10, 10, 10)
. . .
ReDim Preserve X(10, 10, 15)
小心 如果减小数组的大小，则将丢失被排除的元素中的数据。

变量初始化时，数值变量初始化为 0，字符串变量初始化为零长度字符串 ("")。在使用引用对象的变量前，必须使用 Set 语句将某个现有对象赋予该变量。在进行对象赋值以前，已声明的对象变量有特定值 Nothing。


ReDim Óï¾ä

ReDim Óï¾ä
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Dim Óï¾ä
Set Óï¾ä


Rem 语句

Rem 语句 		语言参考
版本 1

描述
包含程序中的解释性注释。
语法
Rem comment

或

' comment

comment 参数是需要包含的注释文本。在 Rem 关键字和 comment 之间应有一个空格。

说明
正如“语法”部分所示，可以用单引号 (') 代替 Rem 关键字。如果 Rem 关键字和语句在同一行，需要用分号来分隔它们。但如果使用单引号，则不需要在单引号和语句之间使用分号。

下面例子举例说明如何使用 Rem 语句:

Dim MyStr1, MyStr2
MyStr1 = "Hello" : Rem 语句和注释用冒号隔开。
MyStr2 = "Goodbye"     ' 这同样是注释不需要冒号。
Rem 在没有代码的行上加注释不必用冒号。


Select Case 语句

Select Case 语句 		语言参考
版本 1

请参阅

描述
根据表达式的值执行几组语句之一。
语法
Select Case testexpression
[Case expressionlist-n
[statements-n]] . . .
[Case Else expressionlist-n
[elsestatements-n]]
End Select

Select Case 语句的语法包含以下部分：

部分 | 描述
testexpression | 任意数值或字符串表达式。
expressionlist-n | 如 Case 出现则必选。一个或多个表达式的分界列表。
statements-n | 当 testexpression 与 expressionlist-n 中的任意部分匹配时，执行的一条或多条语句。
elsestatements-n | 当 testexpression 与 Case 子句的任何部分不匹配时，执行的一条或多条语句。

说明
如果 testexpression 与任何 Case expressionlist 表达式匹配，则执行此 Case 子句和下一个 Case 子句之间的语句，对于最后的子句，则会执行该子句到 End Select 之间的语句，然后控制权会转到 End Select 之后的语句。如 testexpression 与多个 Case 子句中的 expressionlist 表达式匹配，则只有第一个匹配后的语句被执行。

Case Else 用于指示若在 testexpression 和任何其他 Case 选项的 expressionlist 之间未找到匹配，则执行 elsestatements。虽然不是必要的，但最好是将 Case Else 语句置于 Select Case 块中以处理不可预见的 testexpression 值。如果没有 Case expressionlist 与 testexpression 匹配且无 Case Else 语句，则继续执行 End Select 之后的语句。

Select Case 语句可以是嵌套的，每一层嵌套的 Select Case 语句必须有与之匹配的 End Select 语句。

下面例子举例说明如何使用 Select Case 语句:

Dim Color, MyVar
Sub ChangeBackground (Color)
    MyVar = lcase (Color)
       Select Case MyVar
           Case "red"    document.bgColor = "red"
           Case "green"  document.bgColor = "green"
           Case "blue"   document.bgColor = "blue"
           Case Else     MsgBox "选择另一种颜色"
      End Select
End Sub


Select Case Óï¾ä

Select Case Óï¾ä
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

If...Then...Else Óï¾ä


Set 语句

Set 语句 		语言参考
版本 1

请参阅

描述
将对象引用赋给变量或属性，或者是用一个事件关联一个过程引用。
语法 1
Set objectvar = {objectexpression | New classname | Nothing}

语法 2
Set object.eventname = GetRef(procname)

Set 语句的语法包含以下部分：

部分 | 描述
objectvar | 必需的。变量或属性的名称，遵循标准变量命名约定。
objectexpression | 选择项。由对象名称、另一个已声明为相同对象类型的变量或返回相同对象类型的对象的函数或方法组成的表达式。
New | 用于创建新的类的实例的关键字 。如果objectvar 包含对对象引用，则当新的引用被赋值之后，该引用被释放。New 关键字只能用来创建类的实例。
classname | 选择项。类的名字被建立。用Class 语句来定义类及其成员。
Nothing | 选择项。停止 objectvar 与任何指定对象或类的关联。当没有其他变量引用 objectvar 原来所引用的对象时，如将其赋为 Nothing 会释放与该对象所关联的所有系统和内存资源。
object | 必需的。与event关联的对象名称。
event | 必需的。该函数绑定其上的事件的名称。
procname | 必需的。包含和event相关的Sub 或 Function名称的字符串。

说明
为确保有效，objectvar 必须与所赋对象的类型一致。

Dim、Private、Public 或 ReDim 语句只声明了引用对象的变量。只有使用 Set 语句将指定对象赋予该变量后，才能引用实际的对象。

通常，当使用 Set 将一个对象引用赋给变量时，并不是为变量创建对象的副本，而是创建对象的引用。可有多个对象变量引用同一个对象。因为这些变量是对象引用（不是副本），所以对对象所作的任何改动都会影响所有引用该对象的变量。

Function ShowFreeSpace(drvPath)
  Dim fso, d, s
  Set fso = CreateObject("Scripting.FileSystemObject")
  Set d = fso.GetDrive(fso.GetDriveName(drvPath))
  s = "Drive " & UCase(drvPath) & " - "
  s = s & d.VolumeName  & "<BR>"
  s = s & "Free Space: " & FormatNumber(d.FreeSpace/1024, 0)
  s = s & " Kbytes"
  ShowFreeSpace = s
End Function
用New关键字可以同时建立一个类的实例，并赋给一个对象引用变量。类实例赋给的变量必须是用 Dim （或者等效的）语句定义的。

关于使用Set来关联一个事件的过程的信息，请参阅GetRef 函数的文档。


Set Óï¾ä

Set Óï¾ä
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

= Operator
Dim Óï¾ä
GetRef º¯Êý
ReDim Óï¾ä


Sub 语句

Sub 语句 		语言参考
版本 1

请参阅

描述
声明 Sub 过程的名称、参数以及构成其主体的代码。
语法
[Public [Default]| Private] Sub name [(arglist)]
[statements]
[Exit Sub]
[statements]
End Sub

Sub 语句的语法包含以下部分：

部分 | 描述
Public | 表示 Sub 过程可被所有脚本中的所有其他过程访问。
Default | 只与 类块中的Public 关键字连用，用来表示 Sub 过程是类的默认方法。 如果在类中指定了不止一个Default过程，就会出错。
Private | 表示 Sub 过程只可被声明该过程的脚本中的其他过程访问。
name | Sub 的名称，遵循标准变量命名约定。
arglist | 代表在调用时要传递给 Sub 过程的参数的变量列表。用逗号隔开多个变量。
statements | 在 Sub 过程主体内所执行的任何语句组。

arglist 参数包含下列语法和部分：

[ByVal | ByRef] varname[( )]

部分 | 描述
ByVal | 表示该参数是按值传递的。
ByRef | 表示该参数按引用传递。
varname | 代表参数的变量名称，遵循标准变量命名约定。

说明
如没有显式地指定使用 Public 或 Private，则 Sub 过程默认为公用，即它们对于脚本中的所有其他过程都是可见的。Sub 过程中局部变量的值在调用过程中不被保留。

不能在任何其他过程（例如，Function 或 Property Get）中定义 Sub 过程。

使用 Exit Sub 语句可以立即从 Sub 过程中退出。程序继续执行调用 Sub 过程的语句之后的语句。可以在 Sub 过程中任意位置出现任意个 Exit Sub 语句。

与 Function 过程相似之处是：Sub 过程是一个可以获取参数，执行一系列语句以及可改变其参数的值的独立过程。而与 Function 过程不同之处是：Function 过程可以返回值，而 Sub 过程不能用于表达式中。

可以使用过程名并跟随相应的参数列表来调用 Sub 过程。关于如何调用 Sub 过程的详细说明信息，请参阅 Call 语句。

小心 Sub 过程可以是递归的，即该过程可以调用自己来完成某个给定的任务。但是递归可能会导致堆栈溢出。

在 Sub 过程中使用的变量分为两类：一类是在过程内显式声明的，另一类则不是。在过程内显式声明的变量（使用 Dim 或等效方法）总是局部变量。对于那些没有在过程中显式声明的变量也是局部的，除非在该过程外更高级别的位置显式地声明它们。

小心 过程可以使用没有在过程内显式声明的变量，但只要有任何 script 级定义的名称与之同名，就会产生名称冲突。如果过程中引用的未声明的变量与其他的过程、常数或变量的名称相同，则会认为过程引用的是脚本级的名称。要避免这类冲突，请使用 Option Explicit 语句可强制显式声明变量。


Sub Óï¾ä

Sub Óï¾ä
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Call Óï¾ä
Dim Óï¾ä
Exit Óï¾ä
Function Óï¾ä


While...Wend 语句

While...Wend 语句 		语言参考
版本 1

请参阅

描述
当指定的条件为 True 时，执行一系列的语句。
语法
While condition
[statements]
Wend

While...Wend 语句语法有以下部分：

部分 | 描述
condition | 数值或字符串表达式，其计算结果为 True 或 False。如果 condition 为 Null，则 condition 被当作 False。
statements | 在条件为 True 时执行的一条或多条语句。

说明
如果 condition 为 True，则 statements 中所有 Wend 语句之前的语句都将被执行，然后控制权将返回到 While 语句，并且重新检查 condition。如果 condition 仍为 True，则重复执行上面的过程。如果不为 True，则从 Wend 语句之后的语句继续执行程序。

While...Wend 循环可以是多层嵌套结构。每个 Wend 与最近的 While 语句对应。

提示 Do...Loop 语句提供一种结构化与适应性更强的方法以执行循环。

下面例子举例说明如何使用 While...Wend 语句:

Dim Counter
Counter = 0                '初始化变量。
While Counter < 20         ' 测试计数器的值。
   Counter = Counter + 1   ' 增加计数器。
   Alert Counter
Wend                       ' 计数器大于 19 时终止循环。


While...Wend Óï¾ä

While...Wend Óï¾ä
Çë²ÎÔÄ 		ÓïÑÔ²Î¿¼

Do...Loop Óï¾ä


With 语句

With 语句 		语言参考
版本 5

请参阅

描述
对一个对象执行一系列的语句。
语法
With object
statements
End With

With 语句的语法包含以下各部分：

部分 | 描述
object | 必需的部分。可以是一个对象名称，也可以是返回值为对象的一个函数。
statements | 必需的部分。将要对 object 执行的一个或多个命令。

说明
With 语句可以用来对指定的对象执行一系列的语句，但不需要重复地说明对象的名称。例如，如果要修改一个对象的多个属性，可以将所有属性赋值语句放在 With 控制结构中，这样对对象的引用就只需要一次，而不是在每个赋值语句中都引用。下面的例子说明如何使用 With 语句对同一个对象的几个属性进行赋值。

With MyLabel
  .Height = 2000
  .Width = 2000
  .Caption = "这是MyLabel"
End With
尽管属性操作是使用 With 语句最多的情况，它的用法并不仅限于此。With 块中可以使用任何合法的语句。
注意 一旦进入了 With 块，object是不可改变的。因此，不能使用一个With语句去改变若干对象的值。
可以嵌套使用 With 语句，将一个 With 块写在另一个块中。然而，由于外部的 With 块的成员被内部的 With 块掩盖，无论内部的 With 块要引用外部的 With 块中的某个对象的什么成员，都必须使用完全限定的对象引用。

重点 不要跳入或跳出 With 块。如果执行了 With 块中的语句却没有执行 With 或 End With 语句，结果将引发错误或其他难以预见的行为。


With 语句

With 语句
请参阅 		语言参考

Set 语句