Vbs 脚本编程简明教程之FSO 的常见对象和方法

文件系统是所有操作系统最重要的部分之一,脚本经常会需要对文件及文件夹进行访问和管理,在 Vbs 中对桌面和文件系统进行访问的顶级对象是 FileSystemObject(FSO),这个对象特别复杂,是 vbs 进行文件操作的核心。

FSO 包含的常见对象有:
Drive 对象:包含储存设备的信息,包括硬盘、光驱、ram 盘、网络驱动器
Drives 集合:提供一个物理和逻辑驱动器的列表
File 对象:检查和处理文件
Files 集合:提供一个文件夹中的文件列表
Folder 对象:检查和处理文件夹
Folders 集合:提供文件夹中子文件夹的列表
Textstream 对象:读写文本文件
FSO 的常见方法有:
BulidPath :把文件路径信息添加到现有的文件路径上
CopyFile:复制文件
CopyFolder :复制文件夹
CreateFolder :创建文件夹
CreateTextFile:创建文本并返回一个 TextStream 对象
DeleteFile:删除文件
DeleteFolder :删除文件夹及其中所有内容
DriveExits :确定驱动器是否存在
FileExits :确定一个文件是否存在
FolderExists:确定某文件夹是否存在
GetAbsolutePathName:返回一个文件夹或文件的绝对路径
GetBaseName:返回一个文件或文件夹的基本路径
GetDrive:返回一个 dreve 对象
GetDriveName:返回一个驱动器的名字
GetExtensionName:返回扩展名
GetFile:返回一个 file 对象
GetFileName:返回文件夹中文件名称
GetFolder :返回一个文件夹对象
GetParentFolderName:返回一个文件夹的父文件夹名
GetSpecialFolder: 返回指向一个特殊文件夹的对象指针
GetTempName:返回一个可以被 createtextfile 使用的随机产生的文件或文件夹的名称
MoveFile:移动文件
MoveFolder:移动文件夹
OpenTextFile:打开一个存在的文件并返回一个 TextStream 对象

Vbs 脚本编程简明教程之FSO 中文件夹的基本操作
1、使用 fso

由于 fso 不是 wsh 的一部分,所以我们需要建立他的模型例如

Set fso = CreateObject("scripting.filesystemobject")

这样就建立了 fso 的模型。如果要释放的话也很简单,

Set fso = nothing

2、使用文件夹
在创建前,我们一般需要检查该文件夹是否存在例如:

Dim fso,fsoTemp,folder
Set fso = WScript.CreateObject("Scripting.filesystemobject")
If (fso.FolderExists("D:\Temp")) ThenfsoTemp = "is exists"
Else fsoTemp = "not exists"Set folder = fso.CreateFolder("D:\Temp")
End If

拷贝:

Set fso = WScript.CreateObject("Scripting.filesystemobject")
fso.CopyFolder "D:\temp","c:\temp"

注意:如果D:\temp和 c:\temp 都存在,脚本会出错,复制也就会停止,如果要强制覆盖,使用fso.copyfolder “d:\temp”, “c:\temp ”,true

删除:

Set fso = WScript.CreateObject("Scripting.filesystemobject")
fso.DeleteFolder("c:\Temp")

移动:

Set fso = WScript.CreateObject("Scripting.filesystemobject")
fso.MoveFolder "d:\temp","D:\temp1\temp"

我们可以使用统配符,来方便操作:
例如, fs.movefolder :c:\data\te* ” , “d:\working”
注意:在目的路径最后没有使用“\” 也就是说我没有这样写:
fs.movefolder c:\data\te*” , “d:\working\”
这样写的话,如果 d:\working 目录不存在,windows 就不会为我们自动创建这个目录。

注意:上面我们所举的例子都是在利用 fso 提供的方法,如果使用 folder 对象也完全是可以的:

set fs= wscript.createobject("scripting.filesystemobject")
set f=fs.getfolder("d:\data")
f.copy "d:\working",true '拷贝到 d:\working
f.delete '删除文件夹 d:\data。如果有子目录,也会被删除
f.move "d:\temp" '移动到 d:\temp

3、特殊文件夹

一般指的就是系统文件夹:\windows\system32 , 临时文件夹,windows 文件夹,在前几篇的时候,我们提过一下:例如

Set WshShell = WScript.CreateObject("Wscript.Shell")
WScript.Echo WshShell.ExpandEnvironmentStrings("%systemroot%")

运行结果:

当然,还有简单的方法 那就是使用 getspecialfolder()
这个方法使用 3 种值:

Constant Value Description Translate

WindowsFolder

0

The Windows folder contains files installed by the Windows operating system.

表示 windows 文件夹

SystemFolder

1

The System folder contains libraries, fonts, and device drivers.

系统文件夹

TemporaryFolder

2

The Temp folder is used to store temporary files. Its path is found in the TMP environment variable.

临时目录

例如:

Set fso = WScript.CreateObject("Scripting.filesystemobject")
WScript.Echo fso.GetSpecialFolder(0)'返回windows目录
WScript.Echo fso.GetSpecialFolder(1)'返回系统文件夹system32\目录
WScript.Echo fso.GetSpecialFolder(2)'返回系统临时文件夹目录

回显结果:

更多关于FSO的详细操作请参见VBS学习日记(八) FSO 中文件的基本操作

VBS学习日记(六) FSO相关操作相关推荐

  1. 【STM32】标准库与HAL库对照学习教程六--位带操作

    [STM32]标准库与HAL库对照学习教程六--位带操作 一.前言 二.准备工作 三.位带介绍 1.位带操作 2.STM32位带及位带别名区域 四.位带区与位带别名区地址转换 五.GPIO的位带操作 ...

  2. Java之GUI编程学习笔记六 —— AWT相关(画笔paint、鼠标监听事件、模拟画图工具)

    Java之GUI编程学习笔记六 -- AWT相关(画笔paint) 参考教程B站狂神https://www.bilibili.com/video/BV1DJ411B75F 了解paint Frame自 ...

  3. linux系统命令学习系列8-文件相关操作touch,rm,mv,cat,head,tail命令

    上节内容: 1. 系统和目录管理 2. Pwd命令 3. .和..目录 4. 相对路径和绝对路径 作业:进入opt路径,分别使用相对路径方法和绝对路径方法进入到其实任意一个子目录 cd /opt 相对 ...

  4. VBS学习日记(二) 基础知识

    VBScript 基础知识 一.变量 1.全部单引號后面的内容都被解释为凝视.(在vbsedit中ctrl+m凝视,反凝视ctrl+shift+m) 2.在 VBScript 中,变量的命名规则遵循标 ...

  5. Python学习日记(六) 浅深copy

    浅深copy即完全复制一份和部分复制一份 浅深copy在列表数据量较大时不建议使用,比较消耗内存资源 1.赋值运算 l1 = [1,'s',[1,2,3]] l2 = l1 print(id(l1), ...

  6. 强化学习(六) - 连续空间中的强化学习(RL in Continuous Spaces)及相关实例

    强化学习(六) - 连续空间中的强化学习 6.1 连续空间中的强化学习 6.2 离散空间和连续空间 6.3 离散化 实例:小车上山 6.3.1 相关程序 6.3.2 程序注解 (1) 环境测试 (2) ...

  7. python学习 day7_字符串、列表的相关操作

    python学习day7_字符串的相关函数 字符串的相关操作 (1)字符串的拼接 + (2)字符串的重复 * (3)字符串跨行拼接 \ (4)字符串的索引(复习) (5)字符串的切片:(截取) 对字符 ...

  8. CAD中 OLE不能旋转_CAD入门学习技巧:图块的各种相关操作和概念汇总(下)

    上篇文章中我们介绍了CAD软件中关于图块的相关操作和概念,本文我们将继续接介绍图块相关知识,让刚开始进行CAD入门学习的小伙伴对CAD图块有更全面的了解,这样在使用CAD软件绘图的时候也能更加得心应手 ...

  9. Python学习日记-pandas操作学习

    Python学习日记-pandas模块学习 根据需求筛选数据 绘制柱状图-利用pandas绘制 绘制柱状图-利用matplotlib绘制 绘制柱状图-两组数据比较 绘制柱状图-叠加柱状图 绘制饼状图 ...

最新文章

  1. tensor和模型 保存与加载 PyTorch
  2. 动态改变_【清涧一小动态】改变从学习做起,教育从家庭出发——延安市家庭教育协会助力清涧县第一小学全方位提升育人水平...
  3. 谷歌新操作系统Fuchsia网站上线,同时支持手机和PC,鼓励开发者参与进来
  4. linux tomcat自启动设置
  5. JavaScript对数组的处理(一)
  6. 为什么要用dubbo,dubbo和zookeeper关系
  7. java 单开程序_java生成jar包并且单进程运行的实例
  8. Ubuntu 14.04.02 安装openvswitch-2.3.1
  9. 1 TB /节点时快速,可预测且高度可用
  10. “北斗女神”徐颖:科研时间一定大于996
  11. 【探索篇】测试人员一直疏忽掉的测试用例点,你中枪了吗?
  12. 想要更好的云基础设施管理!你检查IT工具集了吗?
  13. crc错误 modbus poll_干货丨从Modbus开始说现场总线!
  14. 再见了,mover。当打之年,感恩相遇,感恩联汇,感恩一切。
  15. 超市管理系统连接服务器失败,国内超市管理系统的使用现状
  16. python PyEnchant(检查拼写)
  17. 电动汽车结构原理基础知识
  18. Keil 中“last line of file ends without a newline”的解决
  19. api接口如何对接?
  20. 处理打拼音时触发input事件bug

热门文章

  1. visio绘制立方体技巧
  2. HTML5粉色气球飘过动画js特效
  3. OAuth2.0简介
  4. Assembly与Modules详解
  5. python初始教程 打印字符串
  6. 天猫:2019将投入百亿孵化100款破亿新品
  7. 已完成的vue项目进行seo优化 (prerender-spa-plugin + vue-meta-info)
  8. 什么是Twisted?网络引擎?
  9. 成为一名数据分析师的新手指导(转)
  10. 安卓---实验7---小猴子摘桃