欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

VBS教程:VBscript语句-ExecuteGlobal 语句

程序员文章站 2022-04-29 09:33:06
executeglobal 语句执行一个功多个在脚本全局名字空间中指定的语句。executeglobal sta...

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