1.首先,我们回顾下FSO是什么?
文件系统对象FSO的英文全称是File System Object ,这种对象模型提出了有别于传统的文件操作语句处理文件和文件夹的方法。通过采用object.method这种在面向对象编程中广泛使用的语法,将一系列操作文件和文件夹的动作通过调用对象本身的属性直接实现。
2.FSO能做什么?
FSO对象模型包含在Scripting 类型库 (Scrrun.Dll)中,它同时包含了Drive、Folder、File、FileSystemObject和TextStream五个对象。其中Drive用来收集驱动器的信息,如可用磁盘空间或驱动器的类型;Folder用于创建、删除或移动文件夹,同时可以进行向系统查询文件夹的路径等操作;File的基本操作和Folder基本相同,所不同的是Files的操作主要是针对磁盘上的文件进行的;FileSystemObject是FSO对象模型中最主要对象,它提供了一套完整的可用于创建、删除文件和文件夹,收集驱动器、文件夹、文件相关信息的方法。需要注意的是,FSO对象模型提供的方法是冗余的,也就是说在实际使用中,FSO对象模型中包含的不同对象的不同方法进行的却是同样的操作,而且FileSystemObject对象的方法直接作用于其余对象,所以在后面的文章中并没有单独提到FileSystemObject对象,千万不要以为没有提到就不重要,事实上FileSystemObject对象在整个FSO对象模型中无处不在;最后的TextStream对象则是用来完成对文件的读写操作的。
3.如何创建FSO?
要创建FSO对象可以采用两种方法:
一种是将一个变量声明为FSO对象类型:
Dim fsoTest As New FileSystemObject;
另一种是通过CreateObject方法创建一个FSO 对象:
Set FSO = CreateObject(“Scripting.FileSystemObject")
在实际使用中具体采用哪种声明方法,可根据个人的使用习惯而定。
完成了FSO对象模型的创建之后,就可以利用创建的对象模型的方法访问下属各个对象的属性来获取所需信息或进行相关操作了。
言归正传,下面是实例的框架分享:
Sub Test190605 Dim FSO As Object '定义FSO Dim FS As Object '定义FS Dim NewBatFile As Object '定义要新建的bat文件 Set FSO = CreateObject("Scripting.FileSystemObject") Set FS = CreateObject("Wscript.shell") ’判断这个bat文件是否存在⬇️ ’OutPath是你要生成到的路径 If FSO.FileExists(OutPath & "\NewFile.bat") Then ’如果存在则删掉它 FSO.DeleteFile OutPath & "\NewFile.bat" End If Set NewBatFile = FSO.OpenTextFile(OutPath & "\NewFile.bat",8,True) ’这个可以做一个循环来写文件的内容 Do While 表达式 NewBatFile.WriteLine ("要写入的内容") Loop NewBatFile.Close FS.Run OutPath & "\NewFile.bat"End Sub