VBS教程:VBscript语句-ExecuteGlobal 语句_vbs

ExecuteGlobal 语句

执行一个功多个在脚本全局名字空间中指定的语句。

ExecuteGlobal statement

statement 参数是一个包含一个或多个可执行语句的字符串表达式 。在statement 参数中可以包含多条语句, 使用冒号将其分开。

说明

在 VBScript 中, x = y 有两种解释方法。第一种方法是作为一条赋值语句, 将 y 的值赋给 x。第二种方法是作为一个表达式 ,用于测试 xy 是否具有相同的值。如果它们相等,则结果为 True; 如果他们不相等,其结果为 False.ExecuteGlobal 语句总是使用第一种方法,而 Eval 方法总是使用第二种方法。

注意  在 Microsoft? Visual Basic Scripting Edition?中, 赋值与比较之间不存在混消,因为赋值运算符(=) 不同于比较运算符。

在脚本的全局名字空间中,ExecuteGlobal 中的所有语句都有是可执行的。因此,允许您将代码添加到程序中,以便于任何 过程 能够对其进行访问。例如,一个 VBScript Class 语句在运行时可以执行。随之函数创造此类的一个新实例。

在运行时添加过程和类是非常有用的,但是也可能导致在运行时覆盖已有的全局 变量 和函数。因为这可能导致非常严重的程序问题,因此,当使用 ExecuteGlobal 语句时一定得非常谨慎。如果您无需访问过程之外的变量或函数,最好使用Execute 语句,因为它只影响主调函数的名字空间。

下面的例子解释了 ExecuteGlobal 语句的用法。

Dim X         ' 声明 X 为全局变量。X = "Global"      ' 给全局变量 X 赋值。Sub Proc1   ' 声明过程。  Dim X      ' 在局部变量中声明 X  X = "Local"   ' 给局部变量 X 赋值。         ' 此处的可执行语句         ' 创建一个过程, 当被调用时, 打印 X。         ' 此处将打印全局变量 X 的值,因为 Proc2         ' 继承了全局变量中的一切。  ExecuteGlobal "Sub Proc2: 打印 X: End Sub"  Print Eval("X")   ' 打印局部 X  Proc2      ' 在全局作用区域中调用 Proc2          ' 将打印 "Global" End SubProc2         ' 此行将导致错误          ' 因为 Proc2  Proc1 之外是不可用的。Proc1         ' 调用 Proc1  Execute "Sub Proc2: 打印 X: End Sub"Proc2         ' 此行调用成功,因为 Proc2         ' 在全局作用区域中是可用的。

下面的例子演示了 ExecuteGlobal 语句可以被重写,因此您无需将下面的整个过程都包括在引用标记之内。

S = "Sub Proc2" & vbCrLfS = S & "  Print X" & vbCrLf S = S & "End Sub"ExecuteGlobal S

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索vbs循环语句、vbs for循环语句、vbs if语句、vbs语句未结束、vbs goto语句,以便于您获取更多的相关知识。

时间: 2024-10-21 23:24:58

VBS教程:VBscript语句-ExecuteGlobal 语句_vbs的相关文章

Eval 函数 | Execute 语句 | ExecuteGlobal 语句使用说明_ASP基础

Eval 函数 计算一个表达式的值并返回结果.  [result = ]Eval(expression) 参数 result 可选项. 是一个变量,用于接受返回的结果.如果未指定结果,应考虑使用 Execute 语句代替. expression 必选项.可以是包含任何有效 VBScript 表达式的字符串. 说明 在 VBScript 中,x = y 可以有两种解释.第一种方式是赋值语句,将 y 的值赋予 x.第二种解释是测试 x 和 y 是否相等.如果相等,result 为 True:否则 r

Eval 函数 | Execute 语句 | ExecuteGlobal 语句使用说明

Eval 函数 计算一个表达式的值并返回结果. [result = ]Eval(expression) 参数 result 可选项. 是一个变量,用于接受返回的结果.如果未指定结果,应考虑使用 Execute 语句代替. expression 必选项.可以是包含任何有效 VBScript 表达式的字符串. 说明 在 VBScript 中,x = y 可以有两种解释.第一种方式是赋值语句,将 y 的值赋予 x.第二种解释是测试 x 和 y 是否相等.如果相等,result 为 True:否则 re

VBS教程:方法-Clear 方法_vbs

Clear 方法 清除 Err 对象的所有属性设置. object.Clear object 应为 Err 对象的名称. 说明 在错误处理后,使用 Clear 显式地清除 Err 对象.此操作是必须的,例如使用 On Error Resume Next 延迟错误处理时.在任何时候执行下列语句,VBScript 自动调用 Clear 方法: On Error Resume Next Exit Sub Exit Function 下面例子举例说明如何使用 Clear 方法. '发生错误继续下一步Er

VBS教程:函数-Eval 函数_vbs

Eval 函数 计算一个表达式的值并返回结果.  [result = ]Eval(expression) 参数 result 可选项. 是一个变量,用于接受返回的结果.如果未指定结果,应考虑使用 Execute 语句代替. expression 必选项.可以是包含任何有效 VBScript 表达式的字符串. 说明 在 VBScript 中,x = y 可以有两种解释.第一种方式是赋值语句,将 y 的值赋予 x.第二种解释是测试 x 和 y 是否相等.如果相等,result 为 True:否则 r

VBS教程:函数-GetObject 函数_vbs

GetObject 函数 返回对文件中 Automation 对象的引用. GetObject([pathname] [, class]) 参数 Pathname 可选项.字符串,包含待检索对象的文件的完整路径和名称.如果省略 pathname 则必须有 class. Class 可选项.字符串,对象的类. class 参数的语法格式为 appname.objectype,其中包括以下部分: 参数 appname 必选项.字符串,提供对象的应用程序名称. objectype 必选项.字符串,要创

VBS教程:对象-Drives 集合_vbs

Drives 集合 只读所有可用驱动器的集合. 说明 无论是否插入媒体,可移动媒体驱动器都显示在 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 =

VBS教程:方法-WriteLine 方法_vbs

WriteLine 方法 向 TextStream 文件写入指定字符串和新行字符. object.WriteLine([string]) 参数 object 必选项.应为 TextStream 对象的名称. string 可选项.要写入文件的文本.如果省略,将向文件写入新行字符. 说明 下面例子举例说明如何使用 WriteLine 方法: Function WriteLineToFile Const ForReading = 1, ForWriting = 2 Dim fso, f Set fs

VBS教程:函数-Array 函数_vbs

Array 函数 返回包含数组的 Variant. Array(arglist) arglist 参数是赋给包含在 Variant 中的数组元素的值的列表(用逗号分隔).如果没有指定此参数,则将会创建零长度的数组. 说明 用于引用数组元素的表示符,由跟随有括号的变量名组成,括号中包含指示所需元素的索引号.在下面的示例中,第一条语句创建名为 A 的变量.第二条语句将一个数组赋值给变量 A.最后一条语句将包含在第二个数组元素中的值赋值给另一个变量. Dim AA = Array(10,20,30)B

VBS教程:对象-Folders 集合_vbs

Folders 集合 包含在一个 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)