ZetCode

VBScript VolumeName Property

last modified April 9, 2025

The VolumeName property in VBScript is part of the FileSystemObject drive object. It gets or sets the name of a disk volume or drive. This property allows scripts to identify and label storage devices. It's commonly used in system administration and file management tasks.

VolumeName works with physical drives, network drives, and mapped drives. The property can be both read and modified when proper permissions exist. This tutorial covers VolumeName with practical examples to demonstrate its usage.

VolumeName Property Overview

The VolumeName property represents the label assigned to a storage volume. It returns a string containing the current volume name. When set, it changes the volume label of the specified drive. The property is accessed through the Drive object in VBScript.

Key features include read/write capability and support for all drive types. The property doesn't verify if the new name follows system naming rules. VolumeName is empty for drives without labels. Understanding this property helps create drive management scripts.

Retrieving a Drive's Volume Name

This example demonstrates how to retrieve the volume name of a specific drive. It shows basic usage of the VolumeName property for reading. The script accesses the C: drive's volume label and displays it.

get_volume_name.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set drive = fso.GetDrive("C:")

volumeName = drive.VolumeName
WScript.Echo "Volume name of C: drive is: " & volumeName

Set drive = Nothing
Set fso = Nothing

The script creates a FileSystemObject and gets the C: drive object. It then retrieves the VolumeName property. The volume name is displayed using WScript.Echo. This is the simplest way to read a drive's label.

Checking for Empty Volume Names

This example shows how to handle drives without volume names. It demonstrates checking if the VolumeName property is empty. The script tests the D: drive and provides appropriate feedback.

check_empty_volume.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set drive = fso.GetDrive("D:")

If drive.VolumeName = "" Then
    WScript.Echo "D: drive has no volume name"
Else
    WScript.Echo "D: drive volume name: " & drive.VolumeName
End If

Set drive = Nothing
Set fso = Nothing

The script checks if VolumeName is an empty string. This indicates the drive has no label assigned. The conditional statement provides different output based on whether a volume name exists. This approach prevents displaying blank names.

Changing a Drive's Volume Name

This example demonstrates setting a new volume name for a drive. It shows the write capability of the VolumeName property. The script changes the E: drive's label to "BACKUP".

set_volume_name.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set drive = fso.GetDrive("E:")

WScript.Echo "Current volume name: " & drive.VolumeName
drive.VolumeName = "BACKUP"
WScript.Echo "New volume name: " & drive.VolumeName

Set drive = Nothing
Set fso = Nothing

The script first displays the current volume name. It then assigns a new value to the VolumeName property. The change is verified by displaying the updated name. Note that administrative privileges may be required for this operation.

Listing All Drives with Volume Names

This example shows how to iterate through all available drives and display their volume names. It demonstrates working with the Drives collection. Each drive's letter and volume name are shown.

list_all_volumes.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set drives = fso.Drives

For Each drive In drives
    If drive.IsReady Then
        name = drive.VolumeName
        If name = "" Then name = "[No Name]"
        WScript.Echo drive.DriveLetter & ": " & name
    End If
Next

Set drives = Nothing
Set fso = Nothing

The script accesses the Drives collection and loops through each drive. It checks if the drive is ready before accessing properties. Empty volume names are replaced with "[No Name]" for better readability. This provides a complete overview of all drives and their labels.

Validating Volume Name Changes

This example demonstrates error handling when changing volume names. It shows how to validate the new name and handle potential errors. The script attempts to change the F: drive's label with proper checks.

validate_volume_change.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
On Error Resume Next

Set drive = fso.GetDrive("F:")
If Err.Number <> 0 Then
    WScript.Echo "Error accessing F: drive"
    WScript.Quit 1
End If

newName = "DATA2024"
drive.VolumeName = newName

If Err.Number = 0 Then
    WScript.Echo "Volume name changed successfully"
Else
    WScript.Echo "Error changing volume name: " & Err.Description
End If

Set drive = Nothing
Set fso = Nothing

The script includes error handling for drive access and name changes. It uses On Error Resume Next to prevent script termination on errors. The result of the operation is verified through the Err object. This approach makes the script more robust for production use.

Source

Drive Object Documentation

In this article, we have explored the VolumeName property in VBScript, covering its usage and practical applications. From reading drive labels to modifying them, these examples demonstrate comprehensive volume management. With this knowledge, you can enhance your system administration scripts with drive identification capabilities.

Author

My name is Jan Bodnar and I am a passionate programmer with many years of programming experience. I have been writing programming articles since 2007. So far, I have written over 1400 articles and 8 e-books. I have over eight years of experience in teaching programming.

List all VBScript tutorials.