【windows 脚本系列】14 程序设计的技巧与秘诀.pdf
上传人:qw****27 上传时间:2024-09-12 格式:PDF 页数:49 大小:1.3MB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

【windows 脚本系列】14 程序设计的技巧与秘诀.pdf

【windows脚本系列】14程序设计的技巧与秘诀.pdf

预览

免费试读已结束,剩余 39 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

14.程序设计的技巧与秘诀本章将提供许多处理MicrosoftWindowsScriptHost(WSH)的有用技巧与秘诀,其中有些部分已经在前面的章节中介绍过了。他们被组织为一般的主题:执行时期的错误;长文件名、AT命令和系统呼叫;使用者对话盒与输出;档案处理;播放音乐;WindowsShell;以及呼叫DUN联机等。执行时期的错误VBScript和JScript都提供行内(inline)的错误处理,也就是说您的Script可以从会导致Script结束的错误中拦截并取得。在本节中,将概述您在Script中使用明确的执行时期错误处理时所需要知道的知识。在VBScript中处理执行时期的错误您可以在VBScript中藉由使用在执行时期的错误发生之后会导致下一个叙述继续被执行的OnErrorResumeNext叙述来实作明确的执行时期错误处理。这个叙述允许行内的执行时期错误处理。(只有语法错误还会被指令引擎报告出来。)您可以使用Err对象来取得错误代码。举例来说,如果oWSH是一个指向WshShell对象的对象变量,那么您可以在使用RegRead方法时检查可能会被唤起的错误:valx=oWSH.RegRead("....","xxxx")IfErr<>0Then...如果在第1叙述执行时执行时期的错误发生,则Err对象的值便不会等于0。您可以使用Err.Number来取得错误代码,以及使用Err.Description来取得错误讯息。在前面的许多章节中皆使用此技巧来处理执行时期的错误。您可以使用OnErrorGoTo0叙述来取消执行时期错误的处理。在这个叙述之后,将换由指令引擎来处理执行时期的错误。注意如同我所说过的,启动行内之执行时期错误的处理将禁止所有不明确的错误讯息,所以您的Script便必须负起侦测与报告执行时期错误的责任。这个方法的危险之处在于某个难以发现的错误可能会被忘了侦测。即使Script包含OptionExplicit叙述,打字错误的变量与函数或程序名称也可能不会被报告为错误。相反地,叙述只会失败,而指令引擎则会移到下一个叙述继续执行。要避免这种风险,在此强烈建议您尽可能越快越好在启动执行时期错误的处理之后便取消他(使用OnErrorGoTo0)。在JScript中处理执行时期的错误JScript在第5版和更新版的指令引擎中支持执行时期错误的处理。您可以下面的方式来使用try{...}catch(e){...}叙述:try{varvalx=WSH.RegRead("....","xxxx");}catch(e){if(e!=0)WScript.Echo("在登录存取时发生错误啰!");}您必须在叙述的前面设定try关键词。您可以将叙述或叙述区块围在大括号里面。如果执行时期的错误发生,则catch(e)叙述便会被呼叫。变量e会取得可以被下面的catch区块中的叙述来处理的错误对象。(这些叙述也必须被以大括号给围住。)在VBScript中唤起执行时期的错误您可藉由使用指令语言提供的方法来唤起您自己的执行时期错误。在VBScript中,您可以使用Err对象的Raise方法。下面的程序代码会唤起执行时期的错误并显示其错误讯息:OnErrorResumeNextErr.ClearErr.Raise'唤起错误MsgBox"错误代码:"&Err.Number&vbCrLf&Err.Description,_vbOKOnly,"VBScript错误讯息"OnErrorGoTo0这个程序代码会模拟溢位错误(代码6)。您可以使用这个代码段来撰写询问错误代码并传回错误讯息的VBScript程序。说明在随书光盘的\WSHDevGuide\Chapter14文件夹中的VBScriptError.vbs会询问错误号码并显示其错误讯息。所有的错误讯息在〈VBScript程序语言参考〉文件中也都有说明。但是由操作系统(或OLE或COM组件)所造成的错误则无说明。您可以使用正确的WindowsAPI呼叫以便从内部表格中获得这些错误讯息,但是这些技巧已经超出本书所讨论的范畴。路径与日期要存取外部档案,您将需要那些档案的路径。在本节中,我们将测验如何取得目前Script档案的文件夹、预设的文件夹或磁盘驱动器。此外也将说明使用日期差值的易犯错误。取得Script的路径有些时候知道您Script的路径是非常方便的─举例来说,当您想要处理位于您Script文件夹中的档案。使用Script的路径当作开始位置比使用绝对路径还不易犯错,因为Script的路径总是