wsh获取磁盘信息

前言

在wsh中,操控磁盘及文件由fso对象来处理,但获取数据在语法上有些不同,下面来展示一下js和vbs之间的区别。

FSO是FileSystemObject或Scripting.FileSystemObject的缩写,为IIS内置组件。可以实现文件(夹)的创建、改变、移动和删除等常见操作,也可以获取文件(夹)的名称、大小、属性、创建日期或最近修改日期等信息,还可以检测是否存在指定的文件夹。通过FSO 对象模型可以获取当前系统驱动器信息,如驱动器的种类(CD-ROM还是可移动磁盘)、磁盘剩余空间等等。

获取驱动器号

js

1
2
3
4
5
6
fso = new ActiveXObject("Scripting.FileSystemObject") //创建fso对象
var Enum = new Enumerator(fso.Drives) //获取驱动器号列表
for(Enum.moveFirst();!Enum.atEnd();Enum.moveNext()){ //遍历驱动号
var drive = Enum.item()
WSH.Echo(drive)
}

vbs

1
2
3
4
5
set fso = CreateObject("Scripting.FileSystemObject") '创建fso对象
set colDrives = fso.Drives '获取驱动器号列表
For Each disk in colDrives '遍历驱动器号
WSH.Echo(disk)
Next
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Set fso = CreateObject("Scripting.FileSystemObject")  
Set colDrives = fso.Drives
For Each drive in colDrives
If drive.IsReady = True Then
WSH.Echo("盘符: " & drive.DriveLetter)
WSH.Echo("磁盘序列号:" & drive.SerialNumber)
WSH.Echo("磁盘类型:" & drive.DriveType)
WSH.Echo("文件系统的类型:" & drive.filesystem)
WSH.Echo("磁盘名称: " & drive.VolumeName)
WSH.Echo("总容量:" &drive.TotalSize)
WSH.Echo("剩余容量: " & drive.FreeSpace)
WSH.Echo("可选容量:" & drive.AvailableSpace)
Else
WSH.Echo("盘符: " & drive.DriveLetter)
End If
Next

参考文献

VBS查看分区剩余空间
用vbs脚本获取磁盘信息