1、Vbscript脚本编写1Vbscript脚本2011.7.16 整理:狂人 后续Dictionary对象Dictionary对象是保存数据键和项目对的对象,类似二元数组,把关键字和关联的项组合在一起。Dictionary对象与PERL关联数组是等价的。项目(可以是任何形式的数据)被保存在数组中。每项都与唯一的键相关联。键值用于检索单个项目,通常是整数或字符串,但不能为数组。该对象的语法为: Scripting.Dictionary下面代码示例如何创建Dictionary对象:Dim dSet d=CreateObject(“Scripting.Dictionary”)d.Add “0”,”星
2、期日”d.Add “1”,”星期一”d.Add “2”,”星期二”Dictionary对象属性CompareMode属性该属性设置并返回在Dictionary对象中比较字符串关键字的比较模式。语法为:object.CompareModel=compareCount属性该属性为只读属性。返回一个集合或Dictionary对象包含的项目数。语法为: object.CountKey属性该属性在Dictionary对象中设置key。语法为:Object.Key(kdy)=newkey其中object为Dictionary对象的名称参数Key必选,为要改变的Key值。参数Newkey必选,表示代替指定k
3、ey值的新值。如果在更改Key值时未找到Key,将出现运行的错误。下面例子说明如何使用Key属性:Dim d Set d=CreateObject(“Scripting.Dictionary”)d.Add “0”,”星期日”d.Add “1”,”星期一”d.Add “2”,”星期二”d.Key(“0”)=”Sunday”Item属性该属性可读写,用来设置或返回Dictionary对象中指定的key对应的item,或返回集合中基于指定的key的item。语法为:object.Item(key)=newitem其中object为Dictionary对象的名称参数key必读,表示与检索或添加的ite
4、m相关联系的key。参数newitem是可选项,仅用于Dictionary对象,不能应用于集合。如果提供此参数,则newitem是与指定的key相关联系的项目的新值。如果更改item时未找到key,则使用指定的newitem创建一个新的key。如果试图返回一个已有项目时未找到key,则创建一个新的key并且它对应的项目为空值。 下面例子说明如何使用Item属性:Dim dSet d=CreateObject(“Scripting.Dictionary”)d.Add “0”,”星期日”d.Add “1”,”星期一”d.Add “2”,”星期二”d.Key(“0”)=”Sunday”Item1=d
5、.Item(“0”)2.Dictionary对象的方法Add方法向Dictionary对象添加键和项目对。语法为:object.Add key,item其中object为Dictionary的item相关的key。参数key必选,为与添加的item相关的key。如果key已经存在,则会出现错误。Exists方法如果在Dictionary对象中存在指定键,返回True,如果不存在,返回False。语法为:object.Exists(key)其中object为Dictionary对象名称。参数key必选,为在Dictionary对象中查找的Key值。下面的例子说明如何使用Exists方法:Func
6、tion FindKey Dim d,msg Set d=CreateObject(“Scripting.Dictionary”) d.Add “0”,”星期日” d.Add “1”,”星期一” d.Add “2”,”星期二” If d.Exists(“2”)ThenFindKey=TrueElseFindKey=FalseEnd IfKeys方法返回一数组,其中包含有Dictionary对象的所有现存键。语法为:object.Keys其中object为Dictionary对象的名称。下例子说明如何使用Keys方法:Function DicKeys Dim d,I,allkey,strkeys
7、 Set d=CreateObject(“Scripting.Dictionary”) d.Add “0”,”星期日” d.Add “1”,”星期一” d.Add “2”,”星期二” allkey=d.KeysFor I=0 to d.Count-1 Strkeys=strkeys&allkey(i)&”NextDicKeys=strkeys End FunctionItem方法返回一个数组,其中包含有Dictionary对象中的所有项目。语法为:object.Items其中object为Dictionary对象的名称。 下面例子说明如何使用Items方法:Function DicItemsD
8、im d,I,allitem,stritemsSet d=CreateObject(“Scripting.Dictionary”)d.Add “0”,”星期日”d.Add “1”,”星期一”d.Add “2”,”星期二”allitem=d.Itemsfor I=0 to d.Count-1stritems=stritems&allitem(i)&”nextRemove方法从Dictionary对象中删除键和项目对。语法为:object.Remove(key)其中object为Dictionary对象的名称。参数key必选,为要从Dictionary对象中删除的键和项目对相关联的key。如果指定
9、的键和项目对不存在,则会出现错误。下面例子说明如何使用Remove方法:Dim dSet d=CreateObject(“Scripting.Dictionary”)d.Add “0”,”星期日”d.Add “1”,”星期一”d.Add “2”,”星期二”d.Remove(“0”)RemoveAll方法删除Dictinary对象中的所有键和项目对。语法为:object.RemoveAll其中object为Dictionary对象的名称。下面例子说明如何使用RemoveAll方法:Dim dSet d=CreateObject(“Scripting.Dictionary”)d.Add “0”,”
10、星期日”d.Add “1”,”星期一”d.Add “2”,”星期二”d.RemoveAllFileSystemObject对象该对象提供对计算机文件系统的访问。允许我们在代码中操纵文本文件、文件夹和驱动器。其语法为:Scripting.FileSystemObjet例如,使用以下语句实例化一个FileSystemObject对象set fso=CreateObject(“Scripting.FileSystemObject”)FileSystemObject对象的属性该对象只有一个属性Drive属性,返回由本地机器上所有Drive对象组成的Drives集合。语法为:object.Drives其
11、中object应为FileSystemObject对象的名称无论是否插入媒体,可移动媒体驱动器都显示在Drives集合中。有关Drives集合,我们将在本章稍后的VBScript中的集合中详细讲述。可以使用For Each.Next结构枚举Drives集合的成员。% Dim fs,d,dc,s,nSet fs=CreateObject(Scripting.FileSystemObject)Set dc=fs.DrivesFor Each d in dcresponse.write(&d.DriveLetter&)if d.DriveType= 3 thens=Removen=d.ShareNa
12、meelses=Localif d.IsReady thenn=d.VolumeNameend if response.write(s&n&) end ifNext%FileSystemObject对象的方法该对象有许多方法,分述如下:BuildPath方法向现有路径后添加名称。语法为:object.BuildPath(path,name)参数说明:*object:必选项,为FileSystemObject对象的名称.*path:必选项,要附加name的现有路径,可以是绝对或相对路径且无需指定现有文件夹.*name:必须选,要附加到现有path的名称.仅在必要时,BulidPath方法在现有路
13、径与该名称之间插入附加路径分隔符.下面例子说明如何使用BulidPath方法:CopyFile方法将一个或多个文件从某位置复制到另一位置.语法为:object.CopyFile source,destination,overwrite参数说明:object:必选项,应为FileSystemObject对象的名称.Source:必选项,表示指定文件的字符串。要复制一个或多个文件时,文件名中可以有通配符。Destination:必选项,表示目标位置的字符串,从source复制文件到该位置。不允许用通配符。Overwrite:可选项,Boolean值表明是否覆盖现有文件。如果是True,则覆盖文件;
14、如果是False,则不覆盖现有文件。默认是True。要注意,无论overwrite设置为何值,只要设置destination为只读属性,CopyFile操作就无法完成。仅能在source参数的路径最后一个组成部分中使用通配符。例如,可以使用:FileSystemObject.CopyFile “c:mydocumentsletters*.doc”,”c:tempfolder”但是,不能使用:FileSystemObject.CopyFile “c:mydocuments*R1?97.xls”,”c:tempfolder”.如果Source包含通配符或destination以路径分隔符()结束,
15、则假定destination是现有文件夹,复制匹配文件到该文件夹。否则,假定destination为要创建的文件。在任一种情况下,复制单个文件时,会出现以下3种情况:#如果destination不存在,则复制source。这是通常会发生的情况。#如果destination是已经存在的文件,当overwrite为Flase时会出现错误。否则,复制source覆盖现有文件。#如果destination是目录,则会出现错误。如果source使用通配符,但并没有相匹配的文件时,则会出现错误。CopyFile方法在遇到出现的第一个错误时停止。该方法不会撤消错误发生前所作的任何更改。CopyFolder方
16、法CopyFolder方法将文件夹从某位置递归复制到另一位置.语法为:object.CopyFolder source,destination,overwrite参数说明:%object:必选项,应为FileSystemObject对象名称。%source必选项,表示指定文件夹的字符串。要得复制一个或多个文件夹时,可使用通配符。%destination:可选项,Boolean值表明是否覆盖现有文件夹。如果为True,则覆盖文件,如果为False,则不覆盖文件,默认值是True。仅能在source参数的路径最后一个组成部分中使用通配符。例如,可以使用:FileSystemObject.CopyF
17、older “c:mydocumentsletters*”,”c:tempfolder”如果source包含通配符或destination以路径分隔符()结束,则假定destination是现有文件夹。在任一种情况下,复制单个文件夹时,会发生如下4种情况: 如果destination不存在,则复制source文件夹和其所有内容。这是通常会发生的情况。 如果destination是已经存在的文件,则出现错误。 如果destination是目录,则复制文件夹和其中的所有内容。如果在destination已经存在source包含的文件,且overwrite为False,则会出现错误。否则,复制该文件
18、覆盖现有文件。 如果destination是只读目录,在向该目录复制现有只读文件,且overwrite为False时,就会出现错误。如果source使用通配符,但没有匹配文件时,也会出现错误。CopyFolder方法在遇出现的第一个错误时停止。该方法不会撤消错误发生前所作的任何更改。CreateFolder方法创建文件夹。语法为:object.CreateFolder(foldername)参数说明:object:必选项,应为FileSystemObject对象的名称。Foldername:必选项,字符串表达式,指明要创建的文件夹。CreateTextFile方法创建指定文件并返回TextSt
19、ream对象,该对象可用于读或写创建的文件。语法为:object.CreateTextFile(filename,overwrite,Unicode)参数说明:object:必选项,应为FileSystemObject或Folder对象的名称filename:必选项,字符串表达式,指明要创建的文件.Overwrite:可选项,Boolean值指明是否可以覆盖现有文件。如果可覆盖文件,该值为True;如果不能覆盖文件,则该值为False。如果省略该值,则不能覆盖现有文件。object:必选项,应为FileSystemObject或Folder对象的名称。filename:必选项,字符串表达式,指
20、明要创建的文件。overwrite:可选项,Boolean值指明是否可以覆盖现有文件。如果可覆盖文件,该值为True;如果不能覆盖文件,则该值为False。如果省略该值,则不能覆盖现有文件。unicode:可选项,Boolean值指明是否以Unicode或ASCII文件格式创建文件。如果以Unicode文件格式创建文件,则该值为True;如果以ASCII文件格式创建文件,则该值为False。如果省略些部分,则假定创建ASCII文件。DeleteFile方法删除指定的文件。语法为:object.DeleteFile filespec,forceobject:必选项,应为FileSystemObj
21、ect的名称。filespec:必选项,要删除的文件名。Filespec在路径的最后个组成部分中可包含通配符。DeleteFolder方法删除指定的文件夹和其中的内容。语法为:object.DeleteFolder folderspec,force参数说明:object:必选项,应为FileSystemObject的名称。folderspec:必选项,要删除的文件夹名称。Folderspec在路径的最后一个组成部分中可包含通配符。force:可选项,Boolean值。如果要删除只读文件夹,则该值为True;否则为False(默认)。DeleteFolder方法不能区分文件夹中是否包含内容。无论
22、文件夹是否包含内容,都将该删除文件夹。如果未找到区配文件夹,则会出现错误。DeleteFolder方法在遇到出现的第一个错误时停止。该方法不会撤消错误发生前所作的任何更改。DriveExists方法如果指定的驱动器存在,则返回True,否则返回False。语法为:object.DriveExists(drivespec)参数说明:object:必选项,应为FileSystemObject对象的名称。drivspec:必选硕,驱动器号或指定的完整径。对于可移动媒体驱动器,即使驱动器中没有插入媒体,DriveExists方法仍返回True.用Drive对象的IsReady属性确定驱动器是否就绪。下
23、面例子说明如何使用DriveExists方法:FileExists方法如果指定的文件存在返回True;否则返回False。语法为:object.FileExists(filespec)object:必选项,应为FileSystemObject对象的名称。filespec:必选项,文件名,表示要确定是否存在的文件。如果文件不在当前文件夹,则必须提供完整路径名(绝对路径或相对路径)。下面的例子说明如何使用FileExists方法:FolderExists方法如果指定的文件夹存在,则返回True;否则返回False。语法为:object.FolderExists(folderspec)object:必选项,应为FileSystemObject的名称。folderspec:必选项,文件夹名称,表示要确定是否存在的文件夹。如果该文件夹不在当前文件夹中,则必须提供完整路径名(绝对路径或相对路径)。下面例子说明如何使用FolderExists方法:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1