Vbscript脚本编写1.docx
《Vbscript脚本编写1.docx》由会员分享,可在线阅读,更多相关《Vbscript脚本编写1.docx(45页珍藏版)》请在冰豆网上搜索。
Vbscript脚本编写1
Vbscript脚本
2011.7.16整理:
狂人后续…
Dictionary对象
Dictionary对象是保存数据键和项目对的对象,类似二元数组,把关键字和关联的项组
合在一起。
Dictionary对象与PERL关联数组是等价的。
项目(可以是任何形式的数据)
被保存在数组中。
每项都与唯一的键相关联。
键值用于检索单个项目,通常是整数或字符
串,但不能为数组。
该对象的语法为:
Scripting.Dictionary
下面代码示例如何创建Dictionary对象:
Dimd
Setd=CreateObject(“Scripting.Dictionary”)
d.Add“0”,”星期日”
d.Add“1”,”星期一”
d.Add“2”,”星期二”
Dictionary对象属性
CompareMode属性
该属性设置并返回在Dictionary对象中比较字符串关键字的比较模式。
语法为:
object.CompareModel[=compare]
Count属性
该属性为只读属性。
返回一个集合或Dictionary对象包含的项目数。
语法为:
object.Count
Key属性
该属性在Dictionary对象中设置key。
语法为:
Object.Key(kdy)=newkey
其中object为Dictionary对象的名称
参数Key必选,为要改变的Key值。
参数Newkey必选,表示代替指定key值的新值。
如果在更改Key值时未找到Key,将出现运行的错误。
下面例子说明如何使用Key属性:
Dimd
Setd=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必读,表示与检索或添加的item相关联系的key。
参数newitem是可选项,仅用于Dictionary对象,不能应用于集合。
如果提供此参数,则newitem是与指定的key相关联系的项目的新值。
如果更改item时未找到key,则使用指定的newitem创建一个新的key。
如果试图返回一个已有项目时未找到key,则创建一个新的key并且它对应的项目为空值。
下面例子说明如何使用Item属性:
Dimd
Setd=CreateObject(“Scripting.Dictionary”)
d.Add“0”,”星期日”
d.Add“1”,”星期一”
d.Add“2”,”星期二”
d.Key(“0”)=”Sunday”
Item1=d.Item(“0”)
2.Dictionary对象的方法
Add方法
向Dictionary对象添加键和项目对。
语法为:
object.Addkey,item
其中object为Dictionary的item相关的key。
参数key必选,为与添加的item相关的key。
如果key已经存在,则会出现错误。
Exists方法
如果在Dictionary对象中存在指定键,返回True,如果不存在,返回False。
语法为:
object.Exists(key)
其中object为Dictionary对象名称。
参数key必选,为在Dictionary对象中查找的Key值。
下面的例子说明如何使用Exists方法:
FunctionFindKey
Dimd,msg
Setd=CreateObject(“Scripting.Dictionary”)
d.Add“0”,”星期日”
d.Add“1”,”星期一”
d.Add“2”,”星期二”
Ifd.Exists(“2”)Then
FindKey=True
Else
FindKey=False
EndIf
Keys方法
返回一数组,其中包含有Dictionary对象的所有现存键。
语法为:
object.Keys
其中object为Dictionary对象的名称。
下例子说明如何使用Keys方法:
FunctionDicKeys
Dimd,I,allkey,strkeys
Setd=CreateObject(“Scripting.Dictionary”)
d.Add“0”,”星期日”
d.Add“1”,”星期一”
d.Add“2”,”星期二”
allkey=d.Keys
ForI=0tod.Count-1
Strkeys=strkeys&allkey(i)&”
”
Next
DicKeys=strkeys
EndFunction
Item方法
返回一个数组,其中包含有Dictionary对象中的所有项目。
语法为:
object.Items
其中object为Dictionary对象的名称。
下面例子说明如何使用Items方法:
FunctionDicItems
Dimd,I,allitem,stritems
Setd=CreateObject(“Scripting.Dictionary”)
d.Add“0”,”星期日”
d.Add“1”,”星期一”
d.Add“2”,”星期二”
allitem=d.Items
forI=0tod.Count-1
stritems=stritems&allitem(i)&”
”
next
Remove方法
从Dictionary对象中删除键和项目对。
语法为:
object.Remove(key)
其中object为Dictionary对象的名称。
参数key必选,为要从Dictionary对象中删除的键和项目对相关联的key。
如果指定的键和项目对不存在,则会出现错误。
下面例子说明如何使用Remove方法:
Dimd
Setd=CreateObject(“Scripting.Dictionary”)
d.Add“0”,”星期日”
d.Add“1”,”星期一”
d.Add“2”,”星期二”
d.Remove(“0”)
RemoveAll方法
删除Dictinary对象中的所有键和项目对。
语法为:
object.RemoveAll
其中object为Dictionary对象的名称。
下面例子说明如何使用RemoveAll方法:
Dimd
Setd=CreateObject(“Scripting.Dictionary”)
d.Add“0”,”星期日”
d.Add“1”,”星期一”
d.Add“2”,”星期二”
d.RemoveAll
FileSystemObject对象
该对象提供对计算机文件系统的访问。
允许我们在代码中操纵文本文件、文件夹和驱动器。
其语法为:
Scripting.FileSystemObjet
例如,使用以下语句实例化一个FileSystemObject对象
setfso=CreateObject(“Scripting.FileSystemObject”)
FileSystemObject对象的属性
该对象只有一个属性—Drive属性,返回由本地机器上所有Drive对象组成的Drives集合。
语法为:
object.Drives
其中object应为FileSystemObject对象的名称
无论是否插入媒体,可移动媒体驱动器都显示在Drives集合中。
有关Drives集合,我们将在本章稍后的VBScript中的集合中详细讲述。
可以使用ForEach….Next结构枚举Drives集合的成员。
<%
Dimfs,d,dc,s,n
Setfs=CreateObject("Scripting.FileSystemObject")
Setdc=fs.Drives
ForEachdindc
response.write("
"&d.DriveLetter&"") ifd.DriveType=3then s="Remove" n=d.ShareName else s="Local" ifd.IsReadythen n=d.VolumeName endif response.write(s&" | "&n&" |
")
endif
Next
%>
FileSystemObject对象的方法
该对象有许多方法,分述如下:
BuildPath方法
向现有路径后添加名称。
语法为:
object.BuildPath(path,name)
参数说明:
*object:
必选项,为FileSystemObject对象的名称.
*path:
必选项,要附加name的现有路径,可以是绝对或相对路径且无需指定现有文件夹.
*name:
必须选,要附加到现有path的名称.
仅在必要时,BulidPath方法在现有路径与该名称之间插入附加路径分隔符.
下面例子说明如何使用BulidPath方法:
<%
dimpath1
path1="C:
\DocumentsandSettings\Administrator\桌面\asp"
response.writeGetBuildPath(path1)
FunctionGetBuildPath(path2)
dimfso,newpath
Setfso=CreateObject("Scripting.FileSystemObject")
newpath=fso.BuildPath(path2,"Subfolder")
GetBuildPath=newpath
EndFunction
%>
CopyFile方法
将一个或多个文件从某位置复制到另一位置.语法为:
object.CopyFilesource,destination[,overwrite]
参数说明:
object:
必选项,应为FileSystemObject对象的名称.
Source:
必选项,表示指定文件的字符串。
要复制一个或多个文件时,文件名中可以有通配符。
Destination:
必选项,表示目标位置的字符串,从source复制文件到该位置。
不允许用通配符。
Overwrite:
可选项,Boolean值表明是否覆盖现有文件。
如果是True,则覆盖文件;如果是False,
则不覆盖现有文件。
默认是True。
要注意,无论overwrite设置为何值,只要设置destination为只读属性,CopyFile操作就无法完成。
仅能在source参数的路径最后一个组成部分中使用通配符。
例如,可以使用:
FileSystemObject.CopyFile“c:
\mydocuments\letters\*.doc”,”c:
\tempfolder\”
但是,不能使用:
FileSystemObject.CopyFile“c:
\mydocuments\*\R1?
?
?
97.xls”,”c:
\tempfolder”.
如果Source包含通配符或destination以路径分隔符(\)结束,则假定destination是现有文件夹,复制匹配文件到该文件夹。
否则,假定destination为要创建的文件。
在任一种情况下,复制单个文件时,会出现以下3种情况:
#如果destination不存在,则复制source。
这是通常会发生的情况。
#如果destination是已经存在的文件,当overwrite为Flase时会出现错误。
否则,复制
source覆盖现有文件。
#如果destination是目录,则会出现错误。
如果source使用通配符,但并没有相匹配的文件时,则会出现错误。
CopyFile方法在遇到出现的第一个错误时停止。
该方法不会撤消错误发生前所作的任何更改。
CopyFolder方法
CopyFolder方法
将文件夹从某位置递归复制到另一位置.语法为:
object.CopyFoldersource,destination[,overwrite]
参数说明:
%object:
必选项,应为FileSystemObject对象名称。
%source必选项,表示指定文件夹的字符串。
要得复制一个或多个文件夹时,可使用通配符。
%destination:
可选项,Boolean值表明是否覆盖现有文件夹。
如果为True,则覆盖文件,如果为False,则不覆盖文件,默认值是True。
仅能在source参数的路径最后一个组成部分中使用通配符。
例如,可以使用:
FileSystemObject.CopyFolder“c:
\mydocuments\letters\*”,”c:
\tempfolder\”
如果source包含通配符或destination以路径分隔符(\)结束,则假定destination是现有文件夹。
在任一种情况下,复制单个文件夹时,会发生如下4种情况:
·如果destination不存在,则复制source文件夹和其所有内容。
这是通常会发生的情况。
·如果destination是已经存在的文件,则出现错误。
·如果destination是目录,则复制文件夹和其中的所有内容。
如果在destination已经存在source包含的文件,且overwrite为False,则会出现错误。
否则,复制该文件覆盖现有文件。
·如果destination是只读目录,在向该目录复制现有只读文件,且overwrite为False时,就会出现错误。
如果source使用通配符,但没有匹配文件时,也会出现错误。
CopyFolder方法在遇出现的第一个错误时停止。
该方法不会撤消错误发生前所作的任何更改。
CreateFolder方法
创建文件夹。
语法为:
object.CreateFolder(foldername)
参数说明:
object:
必选项,应为FileSystemObject对象的名称。
Foldername:
必选项,字符串表达式,指明要创建的文件夹。
<%
dimpath1
path1="C:
\asp\asp1"
response.writeCreateFolderDemo(path1)
FunctionCreateFolderDemo(path2)
dimfso,f
Setfso=CreateObject("Scripting.FileSystemObject")
Setf=fso.CreateFolder(path2)
CreateFolderDemo=f.Path
EndFunction
%>
CreateTextFile方法
创建指定文件并返回TextStream对象,该对象可用于读或写创建的文件。
语法为:
object.CreateTextFile(filename,[,overwrite[,Unicode]])
参数说明:
object:
必选项,应为FileSystemObject或Folder对象的名称
filename:
必选项,字符串表达式,指明要创建的文件.
Overwrite:
可选项,Boolean值指明是否可以覆盖现有文件。
如果可覆盖文件,该值为True;
如果不能覆盖文件,则该值为False。
如果省略该值,则不能覆盖现有文件。
·object:
必选项,应为FileSystemObject或Folder对象的名称。
·filename:
必选项,字符串表达式,指明要创建的文件。
·overwrite:
可选项,Boolean值指明是否可以覆盖现有文件。
如果可覆盖文件,该值为True;如果不能覆盖文件,则该值为False。
如果省略该值,则不能覆盖现有文件。
·unicode:
可选项,Boolean值指明是否以Unicode或ASCII文件格式创建文件。
如果以Unicode文件格式创建文件,则该值为True;如果以ASCII文件格式创建文件,则该值为False。
如果省略些部分,则假定创建ASCII文件。
<%
dimpath1
path1="C:
\testfile.txt"
response.writeCreateAfile(path1)
FunctionCreateAfile(path2)
dimfso,f
Setfso=CreateObject("Scripting.FileSystemObject")
Setf=fso.CreateTextFile(path2,True)
f.WriteLine("Thisisatest")
f.Close
EndFunction
%>
DeleteFile方法
删除指定的文件。
语法为:
object.DeleteFilefilespec[,force]
·object:
必选项,应为FileSystemObject的名称。
·filespec:
必选项,要删除的文件名。
Filespec在路径的最后个组成部分中可包含通配符。
<%
dimpath1
path1="C:
\1.txt"
response.writeDeleteAFile(path1)
FunctionDeleteAFile(path2)
dimfso,f
Setfso=CreateObject("Scripting.FileSystemObject")
fso.DeleteFile(path2)
EndFunction
%>
DeleteFolder方法
删除指定的文件夹和其中的内容。
语法为:
object.DeleteFolderfolderspec,[,force]
参数说明:
·object:
必选项,应为FileSystemObject的名称。
·folderspec:
必选项,要删除的文件夹名称。
Folderspec在路径的最后一个组成部分中可包含通配符。
·force:
可选项,Boolean值。
如果要删除只读文件夹,则该值为True;否则为False(默认)。
DeleteFolder方法不能区分文件夹中是否包含内容。
无论文件夹是否包含内容,都将该删除文件夹。
如果未找到区配文件夹,则会出现错误。
DeleteFolder方法在遇到出现的第一个错误时停止。
该方法不会撤消错误发生前所作的任何更改。
<%
dimpath1
path1="C:
\文件夹"
response.writeDeleteAFolder(path1)
FunctionDeleteAFolder(path2)
dimfso,f
Setfso=CreateObject("Scripting.FileSystemObject")
fso.DeleteFolder(path2)
EndFunction
%>
DriveExists方法
如果指定的驱动器存在,则返回True,否则返回False。
语法为:
object.DriveExists(drivespec)
参数说明:
·object:
必选项,应为FileSystemObject对象的名称。
·drivspec:
必选硕,驱动器号或指定的完整径。
对于可移动媒体驱动器,即使驱动器中没有插入媒体,DriveExists方法仍返回True.
用Drive对象的IsReady属性确定驱动器是否就绪。
下面例子说明如何使用DriveExists方法:
<%
dimdrive
drive="a:
\"
response.writeReportDriveStatus(drive)
FunctionReportDriveStatus(drv)
dimfso,msg
Setfso=CreateObject("Scripting.FileSystemObject")
iffso.DriveExists(drv)then
msg=("驱动器"&UCase(drv)&"存在。
")
else
msg=("驱动器"&UCase(drv)&"不存在。
")
endif
ReportDriveStatus=msg
EndFunction
%>
FileExists方法
如果指定的文件存在返回True;否则返回False。
语法为:
object.FileExists(filespec)
·object:
必选项,应为FileSystemObject对象的名称。
·filespec:
必选项,文件名,表示要确定是否存在的文件。
如果文件不在当前文件夹,则必须提供完整路径名(绝对路径或相对路径)。
下面的例子说明如何使用FileExists方法:
<%
dimdir
dir="c:
\dir.txt"
response.writeReportFileStatus(dir)
FunctionReportFileStatus(filespec)
dimfso,msg
Setfso=CreateObject("Scripting.FileSystemObject")
if(fso.FileExists(filespec))then
msg=filespec&"存在。
"
else
msg=filespec&"不存在。
"
endif
ReportFileStatus=msg
EndFunction
%>
FolderExists方法
如果指定的文件夹存在,则返回True;否则返回False。
语法为:
object.FolderExists(folderspec)
·object:
必选项,应为FileSystemObject的名称。
·folderspec:
必选项,文件夹名称,表示要确定是否存在的文件夹。
如果该文件夹不在当前文件夹中,则必须提供完整路径名(绝对路径或相对路径)。
下面例子说明如何使用FolderExists方法:
<%
dimdir
dir="c:
\vb"
response.writeReportFolderStatus(dir)
FunctionReportFolderStatus(filespec)
dimfso,msg
Setfso=CreateObject("Scripting.FileSystemObject")
if(fso.FolderExists(filespec))then
msg=filespec&"存在。
"
else
msg=filespec&"不存在。
"
endif
ReportFolderStatus=msg
EndFunction
%>