VBScript GetDrive Method
last modified April 9, 2025
The GetDrive
method in VBScript is part of the
FileSystemObject
. It returns a Drive object corresponding to a
specified drive. This method allows access to drive properties like free space,
total size, and drive type. It's essential for scripts that need to interact
with storage devices.
GetDrive
can work with drive letters, UNC paths, or mapped network
drives. It provides detailed information about storage media. This tutorial
covers GetDrive
with practical examples to demonstrate its usage.
GetDrive Method Overview
The GetDrive
method takes one parameter: a drive specification. It
returns a Drive object with properties and methods. The drive specification can
be a letter, path, or network share. This method is available through the
FileSystemObject
.
Key features include access to drive capacity, file system type, and volume information. It works with local and network drives. Understanding this method helps create robust storage management scripts. The method raises an error if the drive doesn't exist.
Basic Drive Information
This example demonstrates the simplest use of GetDrive
to retrieve
basic information about a drive. It shows how to access common drive properties.
The script displays the drive letter, type, and file system.
Set fso = CreateObject("Scripting.FileSystemObject") Set drive = fso.GetDrive("C:") WScript.Echo "Drive Letter: " & drive.DriveLetter WScript.Echo "Drive Type: " & drive.DriveType WScript.Echo "File System: " & drive.FileSystem Set drive = Nothing Set fso = Nothing
The script creates a FileSystemObject
and calls
GetDrive
for the C: drive. It then displays three key properties.
DriveType returns a number representing the drive type (2 for fixed drive).
FileSystem shows the format (NTFS, FAT32, etc.).
Checking Drive Free Space
This example shows how to check available space on a drive using
GetDrive
. It demonstrates accessing capacity-related properties.
The script calculates free space in gigabytes for better readability.
Set fso = CreateObject("Scripting.FileSystemObject") Set drive = fso.GetDrive("C:") totalGB = drive.TotalSize / (1024^3) freeGB = drive.FreeSpace / (1024^3) WScript.Echo "Total Size: " & FormatNumber(totalGB, 2) & " GB" WScript.Echo "Free Space: " & FormatNumber(freeGB, 2) & " GB" Set drive = Nothing Set fso = Nothing
The script retrieves the C: drive and calculates its total and free space. The
values are converted from bytes to gigabytes for readability.
FormatNumber
displays the results with two decimal places. This is
useful for disk monitoring scripts.
Working with Network Drives
GetDrive
can access information about mapped network drives. This
example shows how to retrieve properties from a network share. The script checks
if a network drive is ready before accessing its properties.
Set fso = CreateObject("Scripting.FileSystemObject") Set drive = fso.GetDrive("Z:") If drive.IsReady Then WScript.Echo "Share Name: " & drive.ShareName WScript.Echo "Volume Name: " & drive.VolumeName Else WScript.Echo "Drive Z: is not ready" End If Set drive = Nothing Set fso = Nothing
The script attempts to access a mapped network drive (Z:). It first checks the
IsReady
property to avoid errors. If ready, it displays the share
and volume names. This approach is essential for reliable network drive access.
Listing All Available Drives
This example demonstrates how to list all available drives on a system. It
combines GetDrive
with the Drives
collection. The
script shows each drive's letter and type in a readable format.
Set fso = CreateObject("Scripting.FileSystemObject") Set drives = fso.Drives For Each drive In drives WScript.Echo "Drive: " & drive.DriveLetter & " - Type: " & GetDriveTypeName(drive.DriveType) Next Function GetDriveTypeName(typeNum) Select Case typeNum Case 0: GetDriveTypeName = "Unknown" Case 1: GetDriveTypeName = "Removable" Case 2: GetDriveTypeName = "Fixed" Case 3: GetDriveTypeName = "Network" Case 4: GetDriveTypeName = "CD-ROM" Case 5: GetDriveTypeName = "RAM Disk" Case Else: GetDriveTypeName = "Unknown" End Select End Function Set drives = Nothing Set fso = Nothing
The script enumerates all drives using the Drives
collection. For
each drive, it displays the letter and a human-readable type. The helper
function GetDriveTypeName
converts numeric types to strings. This
provides a comprehensive view of all storage devices.
Checking Drive Readiness and Type
This example shows advanced usage of GetDrive
to check drive status.
It demonstrates handling different drive types and readiness states. The script
provides detailed information about each drive's availability.
Set fso = CreateObject("Scripting.FileSystemObject") Set drives = fso.Drives For Each drive In drives WScript.Echo "Drive " & drive.DriveLetter & ":" WScript.Echo " Type: " & GetDriveTypeName(drive.DriveType) If drive.IsReady Then WScript.Echo " Status: Ready" WScript.Echo " File System: " & drive.FileSystem WScript.Echo " Free Space: " & FormatNumber(drive.FreeSpace / (1024^2), 2) & " MB" Else WScript.Echo " Status: Not Ready" End If Next ' Same GetDriveTypeName function as previous example Set drives = Nothing Set fso = Nothing
The script checks each drive's readiness before attempting to access properties. For ready drives, it shows detailed information including free space in megabytes. This approach prevents errors when accessing unavailable drives. It's particularly useful for scripts dealing with removable media.
Source
FileSystemObject Documentation
In this article, we have explored the GetDrive
method in VBScript,
covering its usage and practical applications. From basic drive information to
advanced status checking, these examples demonstrate comprehensive drive
management. With this knowledge, you can enhance your scripts with robust drive
handling capabilities.
Author
List all VBScript tutorials.