您的位置:首页 > 编程语言 > VB

VBS查看分区剩余空间

2013-01-09 14:47 120 查看
在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

运行结果如下:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: