当你在运行一些基于VBS脚本语言的文件时,系统可能报错。这时候可能是你的VBS脚本服务在注册表中出错了,原因可能是卸载或安装一些代码不规范的程序引起的。这里给出无法找到脚本引擎"vbscript"的解决方法:
把以下代码复制另存为《vbs关联修复.reg》,双击运行即可。
原因是vbs文件没有正常关联,要建立关联,主要有三个地方要修改。
也有可能是动态链接库没有注册,这个可能性很小。用以下批处理解决:《注册vbscript.bat》
《vbs测试.vbs》能运行这个就证明OK了!
运行时库参考》便是微软给出的 FileSystemObject 完整参考。
FSO 不能操作二进制文件,要操作二进制文件,使用:ADODB.Stream。
最近一直在学VBScript,网上相关的教程也有很多,但大多数的对象都放在ASP中讲解,对于没有学过ASP的同学来说就非常郁闷了。所以打算把在学习FileSystemObject及TextStream中所常用的属性和方法写出来供大家来学习,如有不妥的地方请予以指出。
备注:所有的脚本均在QTP 9.0中测试过。
FileSystemObject 对象的作用:提供对计算机文件系统的访问,它允许我们在代码内操作文本文件、文件夹及驱动器。FileSystemObject 对象提供一个属性和一系列方法,可用它们来操纵 FileSystemObject 对象实现的一些从属对象。这里提供了全部的内容概要,然后介绍每一个从属对象。
FileSystemObject 对象只有一个属性,它用于得到当前机器上的所有有效驱动器的列表,如表1所示:
返回本地计算机可用的驱动器列表 |
正如已经看到的,FileSystemObject 对象包含一个属性——Drives,它返回一个包括本地计算机上所有可用驱动器的集合。
Drives 集合里的每个条目是一个 Drive 对象。Drive 对象的属性如表2所示:
考虑了帐户定额和/或其他限制,返回驱动器上对于该用户可用的空间的大小 |
返回驱动器文件系统的类型。返回值包括“FAT”、“NTFS”和“CDFS” |
返回驱动器上可用剩余空间的总量 |
返回一个布尔值表明驱动器是否已准备好 |
返回一个由驱动器字母和冒号组成的驱动器路径,即“C:” |
返回一个用于识别磁盘卷的十进制的序列号 |
如果是一个网络驱动器,返回该驱动器的网络共享名 |
返回驱动器的总容量(以字节为单位) |
设定或返回本地驱动器卷名 |
因此,通过使用 Drives 集合里的 Drive 对象,可以在服务器上产生一个驱动器列表,与通过检查每个可能的驱动器字母来判别驱动器是否存在的方法相比,效率更高。我们也可以得到关于该驱动器的信息。
'判断驱动器是否已准备好
备注:在系统上运行这段程序以前有一点要注意。如果在 A 驱动器里没有磁盘,或 CD-ROM 驱动器里没有光盘,将得到一个错误提示:“Disk Not Ready”。除了 DriveLetter 属性和 DriveType 属性外,在使用其他属性和方法前,通过检查每个驱动器的 IsReady 属性,可以保护该页面。
1. 与驱动器有关的方法
表3 与驱动器有关的方法及说明 |
用字符串返回 drivespec 指定的驱动器的名称。drivespec 参数必须是文件或文件夹的绝对路径,或者仅仅是驱动器字母,例如:“c:”或“c” |
说明:如果在 drivespec 中指定的驱动器存在,则返回 True,否则返回 False。drivespec 参数可以是一个驱动器字母,或者是文件、文件夹的完整绝对路径
2. 与文件夹有关的方法及属性
表4 与文件夹有关的方法及说明 |
删除由 folderspec 指定的一个或多个文件夹(可以在路径的最后部分包含通过配符)及文件夹中的所有内容。如果可选的 force 参数设置为 true,那么即使文件夹包含的文件具有只读属性,也将删除该文件夹。缺省的 force 参数是 False |
返回明确指定文件夹的路径,其中要考虑到当前文件夹的路径。例如,如果当前文件夹是“c:docssales”,而pathspec是“jan”,返回的字符是“c:docssalesjan”。通配符、”..”和”/”路径操作符都是可以接受的 |
返回pathspec 文件或文件夹的上一级文件夹。不检验该文件夹是否存在 |
注:如果c:/123不存在,则QTP将自动创建它
注:DeleteFolder无论文件夹是否包含内容,都将删除该文件夹
说明:如果指定的文件夹存在,则返回 True;否则返回 False。详细说明请查看表4。
说明:从提供的指定路径中返回完整且含义明确的路径。详细说明请查看表4。
说明:返回与指定的路径中某文件夹相应的 Folder 对象。可以根据所返回的Folder 对象,再去访问该Folder 对象所持有的属性。
注:关于Folder对象的属性,将在下面会详细介绍
说明:返回字符串,该字符串包含指定的路径中最后一个文件或文件夹的父文件夹。
说明:返回指定的特殊文件夹。详细说明请查看表4。
说明:将一个或多个文件夹从某位置移动到另一位置。详细说明请查看表4。
Folder对象所提供的方法
删除文件夹及里面的所有内容。如果可选的 force 参数设置为 True,即使文件夹设置为只读或含有只读的文件,也将删除该文件夹。缺省的 force 是 False |
备注:如果目标文件夹不存在,则脚本在运行是将自动创建
说明:删除文件夹及里面的所有内容。详细说明请见表5
备注:如果文件夹属性为只读且Delete的参数为False,则脚本在运行是将提示“没有权限”;当文件夹不存在时,将提示“路径未找到”。
说明:将文件夹及里面所有的内容移动到 destination 指定的文件夹。详细说明请见表5
备注:如果目标文件夹123已存在,则脚本运行时提示“文件已存在”;如果目标文件夹123在D:/,则脚本运行使提示“没有权限”
Folder对象所提供的属性:
返回该文件夹的创建日期和时间 |
返回最后一次访问该文件夹的日期和时间 |
返回最后一次修改该文件夹的日期和时间 |
返回该文件夹所在的驱动器的驱动器字母 |
返回一个布尔值说明该文件夹是否是当前驱动器的根文件夹 |
设定或返回文件夹的名字 |
返回文件夹的绝对路径,使用相应的长文件名 |
返回包含在该文件夹里所有文件和子文件夹的大小 |
返回该文件夹内包含的所有子文件夹对应的 Folders 集合,包括隐藏文件夹和系统文件夹 |
如果可能,返回一个文件夹的说明字符串(例如,“Recycle Bin”) |
如上面提到的,我们可以使用下面的脚本来访问Folder对象
注:通过Folder对象我们就可以访问其提供的方法及属性
3. 以文件有关的方法及属性
表7 与文件有关的方法及说明 |
返回 filespec 指定的文件的名称,即包含文件路径但去掉了文件的扩展名 |
返回pathspec 指定的文件的路径或文件名,如果没有文件名就返回最后的文件夹名。不检查该文件或文件夹是否存在 |
返回一个随机产生的文件名,用于完成运算所需的临时文件或文件夹 |
备注:如果C:/123文件夹不存在,则脚本运行时提示“路径不存在”
备注:如果所删除的文件为只读属性且DeleteFile()的参数为false的话,则脚本运行是出现“没有权限”FileExists的使用
说明:判断所指定的文件是否存在。此方法将返回Bool值. 详细说明请见表7.
说明:返回字符串,文件 (不带扩展名), 或者提供的路径说明中的文件夹。
说明:返回字符串,该字符串包含路径最后一个组成部分的扩展名。
说明:返回指定路径(不是指定驱动器路径部分)的最后一个文件或文件夹。
说明:返回与指定路径中某文件相应的 File 对象,既而可以访问到File的属性。
注:关于File对象的属性,将在下面会详细介绍
说明:返回随机生成的临时文件或文件夹的名称,用于执行要求临时文件或文件夹的操作
说明:打开指定的文件并返回一个 TextStream 对象,可以读取、写入此对象或将其追加到文件。详细的说明见表7.
File对象所提供的属性
返回该文件夹的创建日期和时间 |
返回最后一次访问该文件的日期和时间 |
返回最后一次修改该文件的日期和时间 |
返回文件的绝对路径,可使用长文件名 |
返回该文件的大小(字节) |
如果可能,返回一个文件类型的说明字符串(例如:“Text Document”表示 .txt 文件) |
访问File对象属性的示例如下:
备注:File对象属性的使用方法和前面介绍的Folder对象属性的使用方法一样,所以在这不一一列出。
作为单个字符串读出整个文件 |
作为一个字符串从文件中读出一行(直到回车符和换行) |
当从文件读出时忽略下一行 |
向文件写入字符串 string(可选)和换行符 |
说明:关闭正在打开的文件
说明:向文件写入字符串 string(可选)和换行符。
'三个Write的意思分别为:在文本中写入字符、写入带换行符的字符、写入3个换行符
说明:从 TextStream 文件中读入指定数目的字符并返回结果字符串。
说明:读入全部 TextStream 文件并返回结果字符串。
说明:从 TextStream 文件中读入一整行字符(直到下一行,但不包括下一行字符),并返回结果字符串。
'以只读的方式打开文件 '读取文件时跳过5个字符;或者跳过当前行,读取下一行
备注:两者的区别是:Skip——跳过指定的几个字符;SkipLine——跳过一行
TextStream 的属性提供有关文件内文件指针当前位置的信息,如表9所示。注意,所有的属性是只读的。
如果文件位置指针在文件中一行的末尾则返回 True |
如果文件位置指针在文件的末尾则返回 True |
从 1 开始返回文件中当前字符的列号 |
从 1 开始返回文件中当前行的行号” |
'以只读的方式打开文件,如果文件不存在则创建它 '如果当前的指针不在行末,则读取文本内容
备注:两者间的区别是:AtEndOfLine——读取到当前文本行的末尾;AtEndOfStream——读取到整个文本的末尾
'以只读的方式打开文件 '如果当前的指针不在整个文档的末尾,读取文本的所有内容
f.WriteBlankLines(3) '写入三个空白行(相当于在文本编辑器中按三次回车)
f.Skip(3) '将当前位置向后移三个字符 f.SkipLine() '将当前位置移动到下一行的第一个字符,注意:无参数 response.Write f.Read(3) '从当前位置向后读取三个字符,并将当前位置向后移三个字符 response.Write f.ReadLine() '从当前位置向后读取直到遇到换行符(不读取换行符),并将当前位置移动到下一行的第一个字符,注意:无参数 response.Write f.ReadAll() '从当前位置向后读取,直到文件结束,并将当前位置移动到文件的最后
f.WriteBlankLines(3) '写入三个空白行(相当于在文本编辑器中按三次回车)
检测驱动器C盘是否存在
获取文件路径的驱动器名
取得某个指定的路径的父文件夹的名称
取得指定路径中的最后一个成分的文件扩展名
取得指定路径中的最后一个成分的文件名
返回在指定的路径中文件或者文件夹的基本名称。
好了,这篇文章就介绍到这里了,基本上内容就差不多了。希望大家以后多多支持脚本之家。
[版权声明] 本站所有资料由用户提供并上传,若内容存在侵权,请联系邮箱。资料中的图片、字体、音乐等需版权方额外授权,请谨慎使用。网站中党政主题相关内容(国旗、国徽、党徽)仅限个人学习分享使用,禁止广告使用和商用。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。