VBS中FileSystemObject对象及TextStream对象详解
最近一直在学VBScript,网上相关的教程也有很多,但大多数的对象都放在ASP中讲解,对于没有学过ASP的同学来说就非常郁闷了。所以打算把在学习FileSystemObject及TextStream中所常用的属性和方法写出来供大家来学习,如有不妥的地方请予以指出。 备注:所有脚本都已在QTP中运行 **前言** VBScript(Visual Basic Script)是一种轻量级的脚本语言,常用于Windows系统中的自动化任务和Web应用程序。在VBScript中,FileSystemObject(FSO)和TextStream对象是进行文件系统操作的核心工具,如读写文件、创建、删除文件夹等。对于没有ASP基础的学习者来说,理解这两个对象的使用至关重要。本文将详细介绍FileSystemObject对象及其子对象TextStream,并通过实例演示其常用属性和方法。 **FileSystemObject对象概述** FileSystemObject是VBScript中的一个核心组件,它提供了一套完整的接口,允许我们与文件系统进行交互。这个对象提供了许多属性和方法,让我们能够轻松地完成文件和文件夹的管理任务。 **一、FileSystemObject对象的属性** 1. **Drive**: 返回指定驱动器的Drive对象。 2. **File**: 返回指定文件的File对象。 3. **Folder**: 返回指定文件夹的Folder对象。 4. **Path**: 表示FileSystemObject所关联的路径。 5. **True**: 表示操作成功。 6. **False**: 表示操作失败。 **二、FileSystemObject对象的方法** 1. **DriveExists**: 检查指定的驱动器是否存在。 2. **FileExists**: 检查指定的文件是否存在。 3. **FolderExists**: 检查指定的文件夹是否存在。 4. **CopyFile**: 将文件从源位置复制到目标位置。 5. **CopyFolder**: 将文件夹及其内容从源位置复制到目标位置。 6. **CreateFolder**: 在指定位置创建新文件夹。 7. **DeleteFile**: 删除指定的文件。 8. **DeleteFolder**: 删除指定的文件夹(可选参数决定是否删除子文件夹)。 9. **GetAbsolutePathName**: 获取相对路径的绝对路径。 10. **GetBaseName**: 从路径中获取文件或文件夹的基本名称。 11. **GetDrive**: 获取指定路径的Drive对象。 12. **GetFile**: 获取指定路径的File对象。 13. **GetFolder**: 获取指定路径的Folder对象。 14. **GetParentFolderName**: 获取指定路径的父文件夹路径。 15. **GetSpecialFolder**: 获取特定类型的系统文件夹(如桌面、我的文档等)。 16. **MoveFile**: 将文件从源位置移动到目标位置。 17. **MoveFolder**: 将文件夹及其内容从源位置移动到目标位置。 18. **OpenTextFile**: 打开文本文件以供读取或写入,返回TextStream对象。 **驱动器和文件夹操作实例** 1. **DriveExists** 的使用: ```vbscript Dim fso, drive Set fso = CreateObject("Scripting.FileSystemObject") If fso.DriveExists("C:") Then WScript.Echo "Drive C: exists." Else WScript.Echo "Drive C: does not exist." End If ``` 2. **CopyFolder** 的使用: ```vbscript fso.CopyFolder "C:\Source", "D:\Destination", True ``` 这将把"Source"文件夹及其内容复制到"D:\Destination",`True`表示如果目标文件夹已存在则覆盖。 3. **CreateFolder** 和 **DeleteFolder** 的使用: ```vbscript fso.CreateFolder "C:\NewFolder" fso.DeleteFolder "C:\NewFolder", True ``` 分别创建和删除"C:\NewFolder"。 4. **FolderExists**、**GetAbsolutePathName**、**GetFolder**、**GetParentFolderName** 和 **GetSpecialFolder** 的使用: ```vbscript Dim folderPath, specialFolder, parentFolder folderPath = "C:\MyFolder" If fso.FolderExists(folderPath) Then Set specialFolder = fso.GetSpecialFolder(0) ' 0 表示桌面 WScript.Echo "Absolute path: " & fso.GetAbsolutePathName(folderPath) WScript.Echo "Parent folder: " & fso.GetParentFolderName(folderPath) Set parentFolder = fso.GetFolder(fso.GetParentFolderName(folderPath)) WScript.Echo "Special folder (Desktop): " & specialFolder.Path End If ``` 5. **MoveFolder** 的使用: ```vbscript fso.MoveFolder "C:\OldFolder", "C:\NewLocation\RenamedFolder" ``` 这将移动并重命名"OldFolder"为"RenamedFolder",放置在"C:\NewLocation"下。 **TextStream对象** TextStream对象是FileSystemObject的一个重要子对象,它专门用于处理文本文件的读写。主要属性和方法包括: - **Line**: 当前读取或写入的行号。 - **Position**: 文件指针的位置。 - **AtEndOfStream**: 检查是否已到达文件末尾。 - **OpenAsTextStream**: 打开文件以进行读写。 - **Read**: 从文件读取指定数量的字符。 - **ReadAll**: 读取整个文件的文本。 - **ReadLine**: 读取一行文本。 - **Seek**: 移动文件指针到指定位置。 - **SetEndOfFile**: 将文件长度设置为当前文件指针位置。 - **Write**: 向文件写入文本。 - **WriteLine**: 向文件写入一行文本。 通过TextStream对象,你可以方便地对文本文件进行读写操作,例如: ```vbscript Dim fso, ts Set fso = CreateObject("Scripting.FileSystemObject") Set ts = fso.OpenTextFile("C:\Temp\example.txt", 2, True) ' 2 表示写入模式,True 表示创建文件 ts.WriteLine "Hello, World!" ts.Close Set ts = fso.OpenTextFile("C:\Temp\example.txt", 1) ' 1 表示只读模式 WScript.Echo ts.ReadLine ts.Close ``` 这段代码首先打开一个文件写入一行文本,然后再次打开文件读取并显示该行文本。 总结,VBScript中的FileSystemObject和TextStream对象是强大的工具,使非ASP背景的学习者也能轻松处理文件系统操作。通过理解和熟练运用这些对象,可以编写出各种实用的脚本,实现自动化任务,提高工作效率。
剩余25页未读,继续阅读
- 粉丝: 11
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- MATLAB代码,LSTM(长短时记忆模型),粒子群优化LSTM(psolstm),量子粒子群优化LSTM(QPSOLSTM),可用于风电、光伏等负荷预测,时序预测,数据为单输入单输出,更数据简单,导
- 蒙特卡洛模拟电动汽车充电负荷特性 主要内容: 利用蒙特卡罗仿真生成大规模电动汽车无序充电功率曲线,分析大规模电动汽车接入对电网造成的影响 包括电动汽车日行驶里程概率分布,起始充电时间概率分布,耗电
- PMSM BLDC参数辨识工程源码,电阻电感和完全解耦FOC算法模块 无刷直流电机参数辨识代码 电阻电感磁链参数 含已经解耦的FOC算法模块 辨识精度和收敛速度好 很方便移植到你自己的工程里面 内含使
- 一个定时器控制8路舵机,一个定时器控制8路舵机,含舵机的其他速度控制代码 软件和教程资料
- FX5U Active Socket TCP通讯FB 功能块 有几个通道,就拖几个FB,FB里面全部用的相对地址,相互之间不受干扰 通道0~7 共8个 使用的是上电直接SM402自动连接,
- 四旋翼飞行器自适应或Pid姿态位置控制,可以对比输出,也可以选择其中一种算法输出,包含多个性能指标输出,可直接运行
- 储能PCS逆变器双向变流器设计方案资料,双向DCDC和三电平逆变PCS 30KW 成熟已量产 1.此系列为30KW储能PCS逆变器设计方案资料,双向DCDC和三电平逆变PCS; 2.仿真源码含有并网
- 模块化多电平变器MMC两种调制策略实现(交流3000V-直流5000V整流)仿真,单桥臂二十子模块,分别采用最近电平逼近NLM与载波移相调制CPS-PWM实现,仿真中使用环流抑制,NLM中采用快速排序
- MATLAB SIMULINK,MMC整流器仿真,双闭环控制,最近电平逼近调制,冒泡排序法,在2.5秒加入环流抑制,n=18,仅供学习参考,欢迎讨论,共同进步
- 光伏单相并网仿真 前级采用boost升压电路,采用变扰动观察法实现最大功率点追踪,追踪效果良好 后级采用双闭环控制,电压外环,pr电流内环,陷波器踢出二次功率脉动 单相锁相环采用基于广义二阶积分矢
- 汽车ABS防抱死系统,基于Carsim和Simulink的联合仿真模型 四轮均具有ABS系统,控制目标为四个制动缸压力 采用的是逻辑门限值方法 通过MATLAB状态机对abs系统增压,减压,保压
- 永磁同步直线电机 高阶非奇异快速终端滑模控制 控制效果如下图,提供参考文献和公式 注:控制参数非最优,仅供需要的同学参考
- RRT路径规划算法代码(MATLAB版本) 基于rrt算法的路径规划算法matlab代码,求解常见的路径规划问题 内含算法的注释,模块化编程,新手小白可快速入门 rrt算法,路径规划算法
- 研究背景:高斯光束整形为贝塞尔光束后,可以实现激光功率密度的进一步集中,从2mm的高斯光斑转变为10um左右的贝塞尔光斑,贝塞尔光束因高功率密度的特性,可以用于切割,由于超快激光特性,热影响区小,切割
- 级联H桥型statcom的Matlab仿真,可实现对三相电网的无功补偿(感性和容性),以及直流测电容电压平衡控制 所针对的电网系统为10kV,50Hz,主电路为级联h桥逆变器(CHB),在仿真中CH
- 编码器foc工程源码 编码器为1000线ABZ编码器 源码中含有foc初始电角度差的获取方法 模块化编程 非常适合工业量产和移植