VBS教程和脚本运行库手册.docx

上传人:sk****8 文档编号:4070619 上传时间:2019-09-23 格式:DOCX 页数:157 大小:166.89KB
下载 相关 举报
VBS教程和脚本运行库手册.docx_第1页
第1页 / 共157页
VBS教程和脚本运行库手册.docx_第2页
第2页 / 共157页
VBS教程和脚本运行库手册.docx_第3页
第3页 / 共157页
VBS教程和脚本运行库手册.docx_第4页
第4页 / 共157页
VBS教程和脚本运行库手册.docx_第5页
第5页 / 共157页
点击查看更多>>
资源描述

1、文件系统管理是系统管理的一个关键性任务。WSH 和 VB 脚本在这个领域都没有提供相关的功能。幸运的是,你可以通过 script runtime 库来管理这些关键的系统组件,比如磁盘,文件夹和文件。此外,script runtime 库提供了从 text 文件读写的方法,可以用来创建 dictionary 和编译脚本。作者:临汾市外事旅游局薛靖澜,转载请注明出处 两种主要的脚本语言,VB 脚本语言和 JS 脚本语言起初的时候都是设计给客户端来编写 IE 的。正是因为如此,这两个脚本语言都有一些局限性。例如 VB 脚本和 JS 脚本内部都没有提供访问文件管理的一些任务,比如:复制、移动、删除文件

2、等。这样做的目的是为了保护消费者。大多数的的网站不可能让用户通过网页去删除它们硬盘上的东西。尽管如此,脚本已经从类似的 HTML 的按钮之类的开始迅速的发展了。随着 ASP 的到来,浏览器的编写者要求在 server 上管理文件。而随着 WSH 的到来,系统管理员要求有在 web 浏览器外来管理文件了。 作者:临汾市外事旅游局薛靖澜,转载请注明出处为了满足这个要求,微软发布的了 Script Runtime Library。它是一个单独的 DLL 文件,scrrun.dll 文件,用来给脚本的编写者们提供一些文件管理的能力,包括以下内容:作者:临汾市外事旅游局薛靖澜,转载请注明出处 1、获取文

3、件系统的信息,包括获得磁盘、文件和文件夹上的信息。 2、复制,移动和删除文件及文件夹 3、创建和读写文本文件。 除了这些功能之外,Script Runtime Library 提供了创建字典的能力。也可以用来对脚本进行编译,使脚本成为加密的。Note:这章只是讨论 FileSystemObject 和 Dictionary 的部分,对于 Encode 部分不作讨论, Script Runtime Library 也是 windows 2000 的一部分,它在你安装或者升级微软的应用程序的时候也随着升级和安装了:这些应用程序有以下几个:1、WSH 2、VB 脚本 3、IE 浏览器 4、Micro

4、soft Office 5、FileSystemObject 正如它的名字一样,FSO 设计用来帮助你管理文件系统,FSO 允许你获取重要的文件组件信息,包括硬盘、文件夹、文件;也提供一般的系统管理的任务,比如复制、删除、移动文件和文件夹。此外 FSO 允许你读写文本文件。用 FSO 其实有些用词不当,因为实际上 FSO 包含很多个对象,每个对象被设计成用来完成特定的目的。组成 FSO 的对象列在了下表中:作者:临汾市外事旅游局薛靖澜,转载请注明出处 Drive 代表系统中磁盘或者磁盘的集合File 代表系统中的一个文件或者文件的集合Folder 代表文件系统中的一个文件夹或者多个文件夹Tex

5、tStream 代表文本文件中的读取、写入或者提交字符串 磁盘管理磁盘管理是系统管理的一个重要的部分。作为一个系统管理员,知道安装在这个计算机上磁盘是十分重要的,当然,知道这个磁盘的属性、磁盘类型、子盘大小、总共和剩余空间也是同等重要的。作为一个脚本的编写者,你有两个主要的选择来管理磁盘:WMI FSO。一般来讲,WMI 更是管理磁盘的首选项,主要有以下几个原因: 作者:临汾市外事旅游局薛靖澜,转载请注明出处1、WMI 能返回一些 FSO 无法返回的属性,比如磁道、扇面等。2、FSO 不能返回一个目标磁盘。而是返回所有的磁盘,然后进行筛选出你感兴趣的磁盘。而你可以用 WMI 通过磁盘符号来返回

6、特定的磁盘,WMI 可以用来返回远程计算机上磁盘的信息,但是 FSO 不可以,除非它用 wshcontroller 对象。虽然 WMI 或许是获得磁盘信息的最好工具。但是这里至少有两个原因使你必须去熟悉 FSO。第一:因为有些低端的操作系统无法安装 WMI,所以只能使用 FSO; 作者:临汾市外事旅游局薛靖澜,转载请注明出处第二:最重要的一点是因为:脚本的编写者们在想到获取磁盘信息的时候就会用到 FSO,而你作为系统管理员,可能会来看其它人的脚本,这样就需要了解 FSO。注:外国人写的真是拗口,我理解这句话的意思就是说 FSO 比WMI 应用的更广泛一些。 如何返回磁盘信息在你管理计算机的磁盘

7、之前,你需要知道你的计算机上实际上有多少磁盘可以使用。FSO 允许你管理安装在计算机上的所有磁盘,包括移动硬盘和网络硬盘(就是只要是有盘符的就可以了)为了返回这个集合,你需要首先创建一个 FSO 实例,然后创建磁盘属性的对象。当这个集合返回后,你可用一个 For Each 的循环来重述这个集合。 作者:临汾市外事旅游局薛靖澜,转载请注明出处例如,下面的脚本就是要返回安装在本地计算机上的磁盘集合然后返回它们的盘符:1 Set objFSO = CreateObject(“Scripting.FileSystemObject“) 2 Set colDrives = objFSO.Drives 3

8、For Each objDrive in colDrives 4 Wscript.Echo “Drive letter: “ & objDrive.DriveLetter 5 Next VBS 脚本运行库手册之二(磁盘操作)2007 年 05 月 13 日 星期日 下午 04:38如何绑定指定磁盘如果你事先知道要绑定的磁盘(例如 C 盘或一个共享文件夹accountingreceivables),你可以用 GetDrive 的方法来直接绑定磁盘。这样你可以不用去筛选就获得特定磁盘的信息。GetDrive 需要一个单独的参数:磁盘符号或者是共享文件夹的 UNC 路径。你可以用如下的几种格式:C

9、C: C: 作者:临汾市外事旅游局薛靖澜,转载请注明出处 在下面的脚本中首先创建一个 FSO 对象,然后用 GetDrive 的方法来直接绑定 C 盘,然后回显可用的磁盘空间: 1 Set objFSO = CreateObject(“Scripting.FileSystemObject“) 2 Set objDrive = objFSO.GetDrive(“C:“) 3 Wscript.Echo “Available space: “ & objDrive.AvailableSpace 注意,这里没有 For Each 循环,你就可以获得磁盘的属性。因为脚本是返回一个单独的磁盘对象,而不是所

10、有对象的集合。因此也就不用筛选了。作者:临汾市外事旅游局薛靖澜,转载请注明出处 如何列举磁盘驱动器的属性 磁盘集合的作用总是用来监视和列举的。作为一个系统管理员,你需要知道计算机上的可用磁盘,也需要知道磁盘的序列号、可用空间等信息。在你获得当前磁盘的集合或者单个磁盘的时候,你就可以获得下表列出的所有属性。作者:临汾市外事旅游局薛靖澜,转载请注明出处1、AvailableSpace 报告磁盘上可以使用的空间,单位是 bytes。如果想以 kb 为单位返回,除以 1024,如果想以 M 为单位返回,则除以 1.048,576。这个属性返回的是可用的磁盘空间的总数。如果一个磁盘启用了磁盘限额,那么他

11、返回的数字可能比实际的要小。 2、DriveLette返回特定磁盘的盘符。这个盘符不包含那么冒号。例如软盘返回的是 A,而不是 A:3、DriveType整数的值代表不同的磁盘类型:1:移动硬盘 2:硬盘 3:网络硬盘作者:临汾市外事旅游局薛靖澜,转载请注明出处4:CD-ROM 5:RAM 磁盘 4、FreeSpace返回磁盘剩余空间的总额。单位是 bytes,如果是返回的单位是 kb,就除以 1024,如果是以 M 为单位,除以 1,048,576。注意:这个和磁盘可用空间不一样,剩余的磁盘空间不会考虑磁盘限额。作者:临汾市外事旅游局薛靖澜,转载请注明出处5、FileSystem返回文件系统

12、的类型(FAT,FAT32,NTFS) 6、IsReady标识磁盘是否可以访问。这个值来判断软盘和 CD-ROM 是否为空7、Path磁盘路径。对于本地磁盘,返回盘符和脱尾符(就是那个冒号),比如 A:对于网络磁盘,就返回它的 UNC 路径。8、RootFolder 返回磁盘根目录下的文件夹。 9、SerialNumber磁盘的生产商给磁盘分配的序列号。对于软盘和网络硬盘来说,它们的值是 0。 10、ShareName分配给网络驱动去的共享名称。 11、TotalSize报告整个的磁盘空间,单位是 bytes,如果想以 kb 为单位,除以 1024,如果想以 M 为单位返回,则单位为 1,04

13、8,576。作者:临汾市外事旅游局薛靖澜,转载请注明出处12、VolumeName分配给磁盘的卷名。 为了列举安装在计算机里的磁盘的属性,创建一个 FSO 实例,然后创建一个 FSO 属性的对象,用 For Each 循环,来重现各个磁盘的配置。对于集合当中的每个磁盘,你可以返回一个或者的属性。如下列脚本列举出安装在计算机上所有磁盘的所有属性。1 Set objFSO = CreateObject(“Scripting.FileSystemObject“) 2 Set colDrives = objFSO.Drives 3 For Each objDrive in colDrives 4 Ws

14、cript.Echo “Available space: “ & objDrive.AvailableSpace 5 Wscript.Echo “Drive letter: “ & objDrive.DriveLetter 6 Wscript.Echo “Drive type: “ & objDrive.DriveType 7 Wscript.Echo “File system: “ & objDrive.FileSystem 8 Wscript.Echo “Is ready: “ & objDrive.IsReady 9 Wscript.Echo “Path: “ & objDrive.Pa

15、th 10 Wscript.Echo “Root folder: “ & objDrive.RootFolder 11 Wscript.Echo “Serial number: “ & objDrive.SerialNumber 12 Wscript.Echo “Share name: “ & objDrive.ShareName 13 Wscript.Echo “Total size: “ & objDrive.TotalSize 14 Wscript.Echo “Volume name: “ & objDrive.VolumeName 15 Next 作者:临汾市外事旅游局 薛靖澜,转载请

16、注明出处上述脚本有个潜在的缺点,就是如果没有软盘或者光驱里面没有光盘,会产生一个 disk not ready 的错误出来。当磁盘没有准备好的时候用 FSO 来访问会有些错误的。虽然 FSO 可以标识那些没有准备好的磁盘,但是你访问它的一些属性的时候会报错出来,比如 AvailableSpace 或 FreeSpace。如果磁盘没有准备好,你只可以访问如下的四个属性:DriveLetter、DriveType、IsReady、ShareName 。所有尝试访问其它属性都会报错。幸运的是,IsReady 属性允许你用脚本来检查一个磁盘是否准备好了。IsReady 返回一个 Boolean 值,如

17、果这个值是 true,则磁盘准好了,你可以访问它的所有属性,否则如果这个值是 false,则磁盘没有准备好,只能返回上面的四个属性了。可以对每个磁盘,用 IsReady 属性来保证磁盘是准备好的。如果是就返回磁盘的盘符和剩余空间,如果不是就只返回磁盘的盘符。作者:临汾市外事旅游局薛靖澜,转载请注明出处 1 Set objFSO = CreateObject(“Scripting.FileSystemObject“) 2 Set colDrives = objFSO.Drives 3 For Each objDrive in colDrives 4 If objDrive.IsReady = T

18、rue Then 5 Wscript.Echo “Drive letter: “ & objDrive.DriveLetter 6 Wscript.Echo “Free space: “ & objDrive.FreeSpace 7 Else 8 Wscript.Echo “Drive letter: “ & objDrive.DriveLetter 9 End If 10 Next 作者:临汾市外事旅游局 薛靖澜,转载请注明出处Note:这个问题不会发生在 WMI 上(如果软盘或者光驱中没有盘,脚本就会失败),WMI 只是认为返回的空间为 Null VBS 脚本运行库手册之三(管理文件夹)2

19、007 年 05 月 13 日 星期日 下午 04:40管理文件夹磁盘的属性比如磁盘的剩余空间,磁盘的总额提供了一个全局的信息给系统管理员。但是,对于系统管理而言,磁盘的信息虽然是必须的,但是还不够。知道文件存储在哪个盘固然重要,但是你也需要知道文件是存储在哪个文件夹下的。此外许多的系统管理任务都是发生在文件夹级别的,比如复制,移动,删除和列举文件夹的内容。FSO 可以返回一个磁盘上文件夹的全部信息。此外,FSO 提供了一系列的方法来完成诸如:复制、移动、删除文件夹的操作。 如何绑定指定的文件夹在微软的调用文件中,文件夹是 COM 对象。这就是说在你访问一个单独的文件夹的属性时,你必须去创建一个文件夹的对象 reference,这个过程叫做绑定。你可以用 FSO和 GetObject 的方法来绑定到一个文件夹。作者:临汾市外事旅游局薛靖澜,转载请注明出处当用 GetFolder 的时候,你必须:路径既可以写成本地路径也可以写成 UNC 路径(例如:accountingreceivables)。但是通配符不能出现在路径当中。此外,你不可以创建一个单独的对象 reference 来同时绑定到多个文件夹。例如,如下的脚本代码会产生一个错误:objFSO.GetFolder(“C:FSO“, “C:Scripts“)

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 自然科学

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。