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 2013-01-09 14:47  momingliu11  阅读(565)  评论(0编辑  收藏  举报