随笔 - 911  文章 - 5  评论 - 94  阅读 - 243万

VBS查看分区剩余空间

VBS中,都是通过FileSystemObjectFSO)来对驱动器、文件夹和文件进行处理的,用来创建、删除和获得其相关信息(方法、属性)。

在此我们先使用 Drives 集合来获得驱动器列表信息,然后再对每个驱动器进行遍历,获得其总大小、可用空间等属性,如下:

Ø 驱动器总容量(TotalSize 属性)

Ø 驱动器可用空间(AvailableSpace 或 FreeSpace 属性)

Ø 驱动器号(DriveLetter 属性)

Ø 驱动器类型,如固定的、网络的、可移动的、CD-ROMRAM磁盘(DriveType 属性)

Ø 驱动器文件系统类型,如FAT32NTFS等(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

 

运行结果如下:

   

posted on   momingliu11  阅读(594)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
< 2013年1月 >
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2
3 4 5 6 7 8 9

点击右上角即可分享
微信分享提示