大家好,我们今日继续讲解VBA代码解决方案的第66讲内容:使用Windows Scripting Host处理文件。我们知道,利用Windows Scripting Host(WSH)可以创建一些控制Windows操作系统的小程序,也可以创建从操作系统中获取信息的一些小程序。在使用WSH时,FileSystemObject对象可以用来处理文件系统。
可能有的朋友对于WSH还不是很清楚,我就来详细的给大家讲解。

Windows Scripting Host,其通用的中文译名为"Windows脚本宿主"。它是内嵌于 Windows 操作系统中的脚本语言工作环境。这个概念最早出现于 Windows 98 操作系统。大家一定还记得 MS-Dos 下的批处理命令,它曾有效地简化了我们的工作、带给我们方便,这一点就有点类似于如今大行其道的脚本语言。但就算我们把批处理命令看成是一种脚本语言,那它也是 98 版之前的 Windows 操作系统所唯一支持的"脚本语言"。
此后随着各种真正的脚本语言不断出现,批处理命令显然就很是力不从心了。面临这一危机,微软在研发 Windows 98 时,为了实现多类脚本文件在 Windows 界面或 Dos命令提示符下的直接运行,就在系统内植入了一个基于 32 位 Windows 平台、并独立于语言的脚本运行环境,并将其命名为"Windows Scripting Host"。WSH 架构于 ActiveX 之上,通过充当 ActiveX 的脚本引擎控制器,WSH 为 Windows 用户充分利用威力强大的脚本指令语言扫清了障碍。
当你自己编写了一个脚本文件,如后缀为 .vbs 或 .js 的文件,然后在 Windows 下双击并执行它,这时,系统就会自动调用一个适当的程序来对它进行解释并执行,而这个程序,就是 Windows Scripting Host,程序执行文件名为 Wscript*ex.e** (若是在命令行下,则为 Cscript*ex.e**)。
WSH 诞生后,在 Windows 系列产品中很快得到了推广。除 Windows 98 外,微软在 Internet Information Server 4.0、Windows Me、Windows 2000 Server,以及 Windows 2000 Professional 等产品中都嵌入了 WSH。现在,早期的 Windows 95 也可单独安装相应版本的 WSH。
任何事物都有两面性,WSH 也不例外。应该说,WSH 的优点在于它使我们可以充分利用脚本来实现计算机工作的自动化;但不可否认,也正是它的这一特点,使我们的系统又有了新的安全隐患。许多计算机病毒制造者正在热衷于用脚本语言来编制病毒,并利用 WSH 的支持功能,让这些隐藏着病毒的脚本在网络中广为传播。尤其是邮件附件里的一些脚本文件还是应该保持戒备。
在使用WSH处理文件时,必需使用CreateObject函数创建一个ActiveX对象(FileSystemObject对象),用来提供访问计算机的文件系统,如下面的代码所示:
Dim MyFile As Object
Set MyFile = CreateObject("Scripting.FileSystemObject")
上面的代码首先声明一个名为MyFile的对象变量,然后使用CreateObject函数创建一个ActiveX对象并将该对象赋给对象变量。
CreateObject函数创建并返回一个对ActiveX对象的引用,语法如下:
CreateObject(class,[servername])
其中参数class是必须的,要创建的应用程序名称和类,使用appname.objecttype这种语法,appname指定该对象的应用程序名称,objecttype指定该对象的类型或类。
在声明了对象变量MyFile为Windows Scripting库的FileSystemObject对象后就能使用该对象的属性、方法来处理文件系统。
特别注意点:Windows Scripting Host是基于32 位 Windows 平台,在64位上运行有时会报错(在一些程序的实测时会很明显),在我之后的文章中此点不再声明,大家要注意。
今日内容回向:
1 什么是Windows Scripting Host?
2 应用Windows Scripting Host要特别注意什么呢?