您好,欢迎访问三七文档
1.第1章WindowsScriptHost简介在Windows98之前的MicrosoftWindows版本几乎不提供自动化的协助,例如备份文件或执行例行的系统管理工作。您当然可以在MS-DOS模式窗口中使用旧的MS-DOS批处理文件(BAT)来完成某些工作,例如复制档案。但是批处理文件只能够执行一连串简单的MS-DOS指令(其缺点包括了只有简单的条件分支和没有实际的循环功能等),并且也不支持对话盒和讯息盒。在Windows3.1里面,您可以透过MacroRecorder来记录并执行简单的击键和鼠标点按的动作,但他无法用来撰写程序。使用者为了寻求较有效率的方式来处理这些自动化的工作而找上了第三方所提供的解决方案,例如PowerBatch或者像是Delphi、MicrosoftVisualBasis和VisualC++这类的程序开发环境。但是许多Windows的使用者很快地发现这些解决方案不合己意,因为他们既不简单易用也不是免费的。因为MicrosoftOffice提供VBA(VisualBasicforApplications),以及因为网站的作者们都知道像是VBScript(MicrosoftVisualBasic的描述语言版本)和网景的JavaScript这类的描述语言(ScriptingLanguage),所以在Microsoft为Windows操作系统提供Script程序设计工具之前,这只不过是个时间早晚的问题罢了。而这个工具正是Microsoft的WindowsScriptHost(WSH),属于MicrosoftWindowsScript技术的分支。WSH是一种能够让您直接在操作系统层级执行Script档案的独立主机(Host)。举例来说,您可以从命令行接口叫用Script或者在档案总管中双击Script。WSH对于许多需要很少或者根本不需要接口的管理工作来说是相当便利的。他远比旧的MS-DOS批处理文件好用,因为JScript和VBScript都是功能十分强大的描述语言,他们对于WSH对象和任何其他有效的自动化对象(AutomationObject)都有完整的存取功能。说明在第2版之前,「WindowsScriptHost」称为「WindowsScriptingHost」。在本书中,将使用WSH来泛指这两个版本。您能够用WSHScript来做什么您可以在许多方面使用Script来自定义您的Windows系统。这里有一些您能够使用Script来自动化的工作:备份或复原您系统中的档案。(如果您只是需要从您的机器上储存一些档案到网络服务器中的话,这种能力就显得特别方便。)藉由鼠标点按来关机或重新启动Windows。您也可以使用Script来新增特别的关机或开机工作,例如在关闭应用程序后备份某些档案或是在开机完毕后记录用户的名称。(在Windows95和Windows98中这种透过Script来记录信息的能力尤其有用;而在WindowsNT和Windows2000中,许多这类的功能都是内建的。)整合应用程序与其数据。举例来说,Script可以启动Office应用程序、加载并处理文件、打印、以及关闭应用程序。以这种方式使用Script,您可以用任何您所选择的应用程序来「链接」文件。管理系统所管理的工作,比如说在WindowsNT和Windows2000中新增、更新或移除使用者的账号。您可藉由使用利用到WindowsNT和Windows2000中所提供的主动式目录服务接口(ActiveDirectoryServiceInterface,ADSI)的WSHScript来自动化这些工作。透过适当的对象直接存取Windows的Shell以建立快捷方式(Shortcut)或者映像(Map)如磁盘驱动器和打印机之类的网络装置。读取环境变量(EnvironmentVariable)或是取得有关Windows的信息。启动程序并且控制自动化对象。显示通知用户关于程序的状态或者读取用户输入的对话盒。存取Windows的Shell和Windows的应用程序编程接口(ApplicationProgrammingInterface,API)来控制Windows和其他应用程序。有关VBScript和JScript的补充说明与Windows98和Windows2000一起发布(以及供Windows95和WindowsNT4使用的可下载版本)的WSH,都有内附VBScript和JScript这两种程序语言。VBScript使用和VisualBasic一样的语法,他实际上就是VisualBasic的一个子集合。而JScript则是Microsoft根据ECMAScript标准(ECMA为「欧洲计算机制造商协会」的缩写)实作的一种建构在JavaScript基础之上且与开发厂商无关(Vendor-Independent)的程序语言。这两种程序语言都是您进入Script程序设计世界中的必备品。但是,Microsoft为WSH设计了一个开放的接口以便第三方能够整合他们自己的语言引擎(LanguageEngine)来支持其他的语言,例如Perl、Tcl(ToolControlLanguage)、Rexx等。升级到WSH2WSH1首先是跟着WindowsNT4OptionPack一起发布的。WSH同时也是Windows98的一部份,但是他并不会主动安装到您的机器上,您必须将其当作是附加的Windows组件来安装他。而WSH2已整合到Windows2000系统上,所以如果您使用的是Windows2000的话,您将不需要再去安装他。要检查您的系统中是否已经安装好WSH,您可以简单地浏览一下包含.js、.vbs和.wsf档案的文件夹(例如使用档案总管)。如果显示这些档案的图标(icon)与图1-1相同的话,即表示WSH2已经安装好。如果说.wsf的图标显示的是「未知的文件」类型,则表示WSH1已经安装过了。如果全部的图标都是显示为「未注册的档案」类型的话,就表示WSH尚未安装。图1-1Script档案的图示与扩展名VBScritpvs.VisualBasic/VBA与JScriptvs.JavaScript如果您曾经用VisualBasic或VBA写过程序,或者曾经以VBScript或JScript在HTML文件中撰写Script,那么用VBScript或JScript写作WSH对您而言就应该不是什么大问题了,但是您必须记住下列几点:VisualBasic的程序可以编译成EXE执行档,但是WSH却无此功能。在WSH中,您所有的Script都必须为扩展名是.vbs、.js或.wsf的纯文本档。WSH会直接使用Windows指令引擎(ScriptEngine)来直译Script的内容,所以您可以使用纯文本档的编辑器(如记事本)来撰写您的Script程序。与WSH一同发布的VBScript和JScript并不包含某些程序的结构,比如说在VisualBasic和VBA中允许存取外部函数和程序的Declare宣告叙述(Statement)。还有VBScript并未包含处理延伸的执行时期错误(Run-TimeError)的例程(Routine),例如「OnErrorGoTo标记」的叙述。同时VBScript和JScript都不支持明确的(Explicit)数据类型宣告,相反地,他们将所有的变量视为Variant(一种能包含不同种类数据的特殊数据型态)。WSH提供的对象模块(ObjectModel)与InternetExplorer提供的不同。举例来说,WSH中的windows.document对象并不支持用户的输出。因为WSH的环境不提供延伸的用户接口(类似IntenetExplorer中所提供的那样),所以WSH的对象模型没有开放任何用户接口的事件(Event),例如HTMLScript中的onClick事件。但是,WSH支持事件处理(EventHandling)功能,关于这部分您将在后面的章节中看到。要将Windows95、Windows98或WindowsNT4更新至WSH2,您必须手动安装WSH。随书光盘中包含每种操作系统的WSH2版本。您也可以从网站免费下载最新版的WSH档案。说明至于WindowsNT4的使用者,您还必须先安装ServicePack3。想要在Windows95或WindowsNT4中使用WSH,您应该安装好InternetExplorer4或以上的版本。而要在Windows95中以InternetExplorer3来执行WSH2,您还必须安装DCOM(DistributedComponentObjectModel,分布式组件对象模型)。详细信息请参考台湾微软的网站:://msdn.microsoft.com/taiwan/products/develop/scripting/default.htm%20。WSH与语言引擎的版本您必须知道自己安装的是哪一种版本的WSH,以及用来执行这些Script的语言引擎的版本。Microsoft从3.1版(与WSH1一起发布)的升级开始便发表了好几种语言引擎。3.1a版修正了几只臭虫(Bug)。VisualBasic6与第4版的语言引擎一同发布。InternetExplorer5包含第5版的语言引擎,其中修正了不少臭虫并且扩充语言的功能。Microsoft还提供可下载的语言引擎第5版当作另一种升级的方式(网址是)。WSH2是WindowsScript5.1的一部份,该版本还包括了5.1版的VBScript和JScript的语言引擎。而5.1版的语言引擎可以和InternetExplorer4、5以及IIS(InternetInformationServer)3、4等版本搭配使用。建立并且使用Script您已经准备好要建立并且使用您的第一支Script了吗?一开始,我们将以建立显示「Hello,world」讯息之对话盒的简单程序来让您看见Script程序设计的基本功能以及如何执行Script。用VBScript建立您的第一支Script建立如图1-2所示的简单对话盒,您只需要用VBScript打上一行:WScript.EchoHello,world图1-2简单的对话盒那么您要如何建立Script档案呢?以这个简单的Script为例,您需要的只是记事本软件而已。示范步骤如下:1.启动记事本并输入如图1-3所示的程序代码。其中WScript.Echo叙述是这个程序中最重要的部分,其主要功能是建立一对话盒。图1-3您的第一支VBScript程序2.将编辑窗口中的内容储存为文本文件。您可以使用任何的檔名(例如Hello),但是扩展名一定要是.vbs。说明在此建议您使用.vbs做为VBScript档案的扩展名。这个文件类型已经自动注册给WSH使用了。如果您的Script档案使用的是其他的扩展名,那么将没有任何版本的WSH可以识别出他是用什么描述语言写的。双按一个错误扩展名(比如说.vb)的Script将会启动开启档案...的对话盒,因为没有应用程序注册给这个文件类型使用。当您储存完这个Script之后,应该会有一个名为Hello.vbs的档案在您的硬盘中。程序代码如程序1-1所示。程序1-1Hello.vbs'*********************************************'档案:Hello.vbs(WSHsampleinVBScript)'作者:(c)G.Born''显示简单的对话盒'*********
本文标题:【windows 脚本系列】1. 第1章 Windows Script Host简介
链接地址:https://www.777doc.com/doc-3606572 .html