DriveGet

获取计算机驱动器的各种类型的信息.

DriveGet, OutputVar, SubCommand , Value

OutputVar 参数是用于存储结果的输出变量的名称. SubCommandValue 参数相互依赖, 其用法如下所示.

子命令

对于 SubCommand, 指定以下命令之一:

List

检索一串字母, 其中每个字母表示系统中的一个驱动器.

DriveGet, OutputVar, List , Type

例如: ACDEZ. 如果省略 Type, 则获取所有类型的驱动器. 否则, 指定 Type 为下列单词的其中一个来获取该特定类型的驱动器: CDROM, REMOVABLE, FIXED, NETWORK, RAMDISK, UNKNOWN.

Capacity(或 Cap)

检索指定包含指定路径的驱动器的总容量, 单位为 MB.

DriveGet, OutputVar, Capacity, Path

Path 是驱动器包含的任何路径(可能也适用于 UNC 路径和映射驱动器). 结果四舍五入到最接近的整数. 使用 DriveSpaceFree 来获取可用的空间.

FileSystem(或 FS)

检索指定驱动器的文件系统的类型.

DriveGet, OutputVar, FileSystem, Drive

Drive 由驱动器字母, 跟着一个冒号和可选的反斜杠组成, 或为 UNC 名称, 例如 \\server1\share1. OutputVar 的可能值由系统定义; 它们包括(但不限于) 以下: NTFS, FAT32, FAT, CDFS(通常表示 CD), 或 UDF(通常表示 DVD). 如果驱动器中不包含格式化的媒体, OutputVar 被置空且 ErrorLevel 被置为 1.

Label

检索指定驱动器的卷标.

DriveGet, OutputVar, Label, Drive

Drive 由驱动器字母, 跟着冒号和可选的反斜杠组成, 或为 UNC 名称, 例如 \\server1\share1.

要改变卷标, 请使用 Drive 的 Label 子命令, 如 Drive, Label, C:, MyLabel.

Serial

检索以十进制数表示的指定驱动器的卷序列号.

DriveGet, OutputVar, Serial, Drive

Drive 由驱动器字母, 跟着冒号和可选的反斜杠组成, 或为 UNC 名称, 例如 \\server1\share1. 请参阅 Format()SetFormat 了解如何把结果转换成十六进制.

Type

检索包含指定路径的驱动器的类型.

DriveGet, OutputVar, Type, Path

Path 是驱动器包含的任何路径(可能也适用于 UNC 路径和映射驱动器). 如果路径无效(例如, 驱动器不存在), 则 OutputVar 置空. 否则, 它被设置为以下单词之一: Unknown, Removable, Fixed, Network, CDROM, RAMDisk.

Status

检索包含指定路径的驱动器的状态.

DriveGet, OutputVar, Status, Path

Path 是驱动器包含的任何路径(可能也适用于 UNC 路径和映射驱动器). OutputVar 被设置为以下单词之一:

Status 注意
Unknown 能表示未格式化/RAW 文件系统.
Ready 这是最常见的.
NotReady 常表示不含媒体的可移动驱动器.
Invalid Path 不存在或为当前无法访问的网络驱动器, 等等.

StatusCD

检索 CD 或 DVD 驱动器的媒体状态.

DriveGet, OutputVar, StatusCD , Drive

Drive 由驱动器字母跟着冒号组成. 如果省略 Drive, 则使用默认的 CD/DVD 驱动器. 如果无法确定它的状态, OutputVar 被置空. 否则, 它被设置为下列字符串的其中一个:

状态 意义
not ready 驱动器未准备好被访问, 可能因为正忙于写入操作. 已知限制: 当驱动器里是 DVD 而不是 CD 时, 也会出现 "未准备好" 的情况.
open 驱动器里没有光盘, 或者托盘已弹出.
playing 驱动器正在播放光盘.
paused 之前播放的音频或视频现在已暂停.
seeking 驱动器正在寻道.
stopped 驱动器里有 CD 但当前没有进行访问.

此子命令对网络驱动器或非 CD/DVD 驱动器不起作用. 如果因为这种或其他原因失败了, 则 OutputVar 被置空且 ErrorLevel 被置为 1.

如果托盘刚才被关闭, 则此子命令可能需要一些时间才能完成.

要弹出或收回托盘, 请参阅 Drive 的 Eject 子命令.

错误处理

[v1.1.04+]: 此命令失败时会抛出异常. 想了解更多信息, 请参阅运行时错误.

如果遇到问题则 ErrorLevel 被置为 1, 否则为 0.

备注

此命令的一些子命令参数 Path 中可以接受网络共享名, 例如 \\MyServer\MyShare\.

Drive, DriveSpaceFree

示例

允许用户选择一个驱动器来分析它.

FileSelectFolder, folder, , 3, Pick a drive to analyze:
if not folder
    return
DriveGet, list, List
DriveGet, cap, Capacity, %folder%
DriveSpaceFree, free, %folder%
DriveGet, fs, FileSystem, %folder%
DriveGet, label, Label, %folder%
DriveGet, serial, Serial, %folder%
DriveGet, type, Type, %folder%
DriveGet, status, Status, %folder%
MsgBox All Drives: %list%`nSelected Drive: %folder%`nDrive Type: %type%`nStatus: %status%`nCapacity: %cap% M`nFree Space: %free% M`nFilesystem: %fs%`nVolume Label: %label%`nSerial Number: %serial%