VBS查看分区剩余空间
在VBS中,都是通过FileSystemObject(FSO)来对驱动器、文件夹和文件进行处理的,用来创建、删除和获得其相关信息(方法、属性)。
在此我们先使用 Drives 集合来获得驱动器列表信息,然后再对每个驱动器进行遍历,获得其总大小、可用空间等属性,如下:
Ø 驱动器总容量(TotalSize 属性)
Ø 驱动器可用空间(AvailableSpace 或 FreeSpace 属性)
Ø 驱动器号(DriveLetter 属性)
Ø 驱动器类型,如固定的、网络的、可移动的、CD-ROM或RAM磁盘(DriveType 属性)
Ø 驱动器文件系统类型,如FAT32、NTFS等(FileSystem 属性)
将如下代码保存为.vbs格式,然后双击即可运行:
Dim fso, ldisk,d '定义变量 Set fso = CreateObject("Scripting.FileSystemObject") '创建FileSystemObject对象,然后在新创建的对象上使用适当的方法访问对象的属性 set ldisk = fso.drives for each d in ldisk '遍历所有驱动器 msgbox d.driveletter '显示驱动器号 Next |
运行结果如下:
对上面的代码稍微进行修改后,如下:
Dim fso, ldisk,d '定义变量 Set fso = CreateObject("Scripting.FileSystemObject") '创建FileSystemObject对象,然后在新创建的对象上使用适当的方法访问对象的属性 set ldisk = fso.drives for each d in ldisk '遍历所有驱动器 msgbox "分区 " & d.DriveLetter &" 总大小:" &d.TotalSize '显示驱动器号和总大小 Next |
运行结果如下:
接着还会出现如下报错:
这是因为脚本遍历到了CD-ROM,其不具有“TotalSize”属性导致。所以这时候我们还需要根据“DriveLetter” 属性对驱动器进行过滤,根据下表我们可以得出 固定分区的DriverLetter 为2。
驱动器类型 |
值 |
可移动存储设备 |
1 |
固定驱动器,包括所有硬盘驱动器(包括移动硬盘) |
2 |
网络驱动器 |
3 |
CD-ROM |
4 |
在此对以上代码进行修改后,如下:
Dim fso, ldisk,d '定义变量 Set fso = CreateObject("Scripting.FileSystemObject") '创建FileSystemObject对象,然后在新创建的对象上使用适当的方法访问对象的属性 set ldisk = fso.drives for each d in ldisk '遍历所有驱动器 If d.DriveType = 2 Then msgbox "分区 " & d.DriveLetter &" 总大小:" &d.TotalSize '显示驱动器号和总大小 End If Next |
运行该脚本后不会再出现前面的报错信息。在这里,驱动器容量大小单位为“字节”,为了方便查看,可以将其转换为“GB”,通过使用round函数对其进行处理,保留结果小数点后一位,修改后代码如下:
Dim fso, ldisk,d '定义变量 Set fso = CreateObject("Scripting.FileSystemObject") '创建FileSystemObject对象,然后在新创建的对象上使用适当的方法访问对象的属性 set ldisk = fso.drives for each d in ldisk '遍历所有驱动器 If d.DriveType = 2 Then msgbox "分区 " & d.DriveLetter &" 总大小:" &round(d.TotalSize/1024/1024/1024,1) &"GB" '显示驱动器号和总大小 End If Next |
运行结果如下:
如果我们要想显示当前可用空间百分比,则代码如下:
Dim fso, ldisk,d,Tsize,Fsize '定义变量 Set fso = CreateObject("Scripting.FileSystemObject") '创建FileSystemObject对象,然后在新创建的对象上使用适当的方法访问对象的属性 set ldisk = fso.drives for each d in ldisk '遍历所有驱动器 If d.DriveType = 2 Then Tsize = Round(d.TotalSize/1024/1024/1024,1) ‘分区总大小 Fsize = Round(d.FreeSpace/1024/1024/1024,1) ‘分区剩余空间大小 msgbox "分区 " & d.DriveLetter &" 剩余空间为:" & formatpercent(Fsize/Tsize) '显示驱动器剩余空间百分比 End If Next |
运行结果如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?