当前位置: 首页 > 图文教程 > 脚本技术 > VBScript > VBS教程:VBscript语句-Execute 语句

VBScript
用vbs检索在运行对话框中键入的一系列命令的代码
编写可以打开文本文件并打乱在该文件中所找到的单词顺序的vbs脚本
在 HTA 中暂停脚本的方法
运行脚本之前,如何确定计算机上的默认脚本宿主的代码
用vbs实现删除名称中有撇号的文件夹
用vbs将输出内容写到屏幕以覆盖当前屏幕上的内容的方法
用vbs实现配置无人登录计算机时使用的屏幕保护程序
用vbs更改 Internet Explorer 的标题栏
用vbs读取文本文件的最后一行
用vbs实现重新启动 Internet Explorer
用vbs实现禁用服务
用vbs确定计算机是否有 USB 2.0 端口的代码
用vbs列出注册表中 Run 项中的所有项目
用vbs将名称截断以使其最多包含 16 个字符的代码
用vbs将本地文件替换为在文件服务器上找到的新版本
用vbs确定脚本正在哪一个帐户下运行
用vbs确定可移动驱动器的连接时间
用vbs记录屏幕保护程序的开始时间和结束时间
用vbs计算某个词在日志文件中的出现次数
vbs病毒的简单例子源代码解析

VBScript 中的 VBS教程:VBscript语句-Execute 语句


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-11   浏览: 79 ::
收藏到网摘: n/a

Execute 语句

执行一个或多个指定的语句。

Execute statements

所需要的 statements 参数是一个字符串表达式,其中包含一个或多个要执行的语句。 如果要在 statements 参数中包含多条语句,应使用分号或嵌入的分行将其分隔开。

说明

在 VBScript 中,x = y 可以有两种解释。首先是作为赋值语句,将 y 的值赋予 x。其次是作为表达式,测试xy 的值是否相等。如果相等,结果True;否则,结果FalseExecute 语句总是使用第一种解释,而 Eval 方法总是使用第二种。

注意 在 Microsoft(R) Visual Basic Scripting Edition 中并不存在赋值与比较之间的混淆,因为赋值运算符(=)与比较运算符(==)是不同的。

调用 Execute 语句的上下文确定了要运行的代码可以使用的对象和变量。作用域内的对象和变量是 Execute 语句中运行的代码可以使用的。不过,必须明白的一点是,如果被执行的代码创建了过程,那么该过程将不会继承它所在的过程的作用域。

与其他过程类似,新的过程的作用域是全局的,它继承了全局作用域的全部东西。与其他过程不同的是,它的上下文不是全局作用域,因此它只能在发生 Execute 语句的过程内的上下文中执行。不过,如果相同的 Execute 语句是在过程之外(例如在全局作用域)的作用域中被调用,那么它将不仅继承全局作用域中的所有东西,而且它还可以在任何地方被调用,因为它的上下文是全局的。下面的例子说明了这种特点:

Dim X ' 在全局作用域中声明 XX = "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 的作用域中调用 Proc2End SubProc2 ' 本行将导致一个错误,因为 ' Proc2  Proc1 之外是不可使用的。Proc1 ' 调用 Proc1 Execute "Sub Proc2: Print X: End Sub"Proc2 ' 这句话可以成功,因为 Proc2 ' 现在是全局可用的。

下面的例子显示了如何将 Execute 语句改写,免于将整个过程包含在引号内:

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