vbscript中objLogicalDisk.DriveType的枚举值是指什么?

时间:2010-07-08 09:21:11

标签: vbscript enums disk filesystemobject

所以下面的代码:

Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim colDrives : Set colDrives = objFSO.Drives
Dim objWMIService : Set objWMIService = GetObject("winmgmts:")
Dim objLogicalDisk
Dim objDrive

For Each objDrive in colDrives
    Set objLogicalDisk = 
objWMIService.Get("Win32_LogicalDisk.DeviceID='" & objDrive.DriveLetter & ":'")
    Log(objLogicalDisk.DriveType)
Next

用于获取系统上每个驱动器的磁盘类型。我想知道的是,返回的数字('3','4','5'等)是指什么?在互联网上环顾四周,我发现他们应该在我的系统上找到不同的答案 - 根据互联网:

未知= 0

可移动= 1'可移动媒体

固定= 2'固定媒体(硬盘)

远程= 3'网络驱动器

CDROM = 4'CD-ROM

RAMDisk = 5'RAM磁盘

根据我到目前为止收集的数据,3 =我的本地C盘,5 =我的本地D(DVD)盘,4 =网络驱动器。

如果有人可以帮助澄清这种歧义,那就太好了:)

2 个答案:

答案 0 :(得分:2)

我发现这篇文章正在寻找使用DriveType属性的一些示例。

FWIW,虽然海伦清楚地提供了正确的答案,但我认为值得注意的是,OP在他的结果中遇到一些混乱的可能原因是因为他正在混合和匹配来自不同界面的对象的使用。

他开始使用FileSystemObject获取驱动对象列表,但后来切换到WMI以从每个驱动对象获取他想要的属性。 Drive对象的DriveType属性值在FileSystemObject下与在WMI下的不同。

类似于Helen为WMI提供的内容,但对于FileSystemObject的内容是:

https://msdn.microsoft.com/en-us/library/aa243132(v=vs.60).aspx

Value    Meaning
--------------------------
0        Unknown
1        Removable Disk
2        Fixed Disk
3        Network Drive
4        Compact Disc
5        RAM Disk

如果他将所有内容保存在FileSystemObject中,那么他的结果将符合他的预期,例如:

Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim colDrives : Set colDrives = objFSO.Drives
Dim objDrive

For Each objDrive in colDrives
    Wscript.Echo  objDrive.DriveType
Next

答案 1 :(得分:1)

官方WMI参考位于MSDN library

至于您的问题,Win32_LogicalDisk类引用描述了以下DriveType值:

Value    Meaning
--------------------------
0        Unknown
1        No Root Directory
2        Removable Disk
3        Local Disk
4        Network Drive
5        Compact Disc
6        RAM Disk