VBScript GetBaseName Method
last modified April 9, 2025
The GetBaseName
method in VBScript is part of the
FileSystemObject
. It extracts the base name from a file path,
removing both the directory path and file extension. This method is useful for
working with filenames without their full paths or extensions.
GetBaseName
handles both files and directories, returning the last
component of the path. It doesn't verify if the path exists. This tutorial
covers GetBaseName
with practical examples to demonstrate its usage.
GetBaseName Method Overview
The GetBaseName
method takes a file path as its parameter. It
returns a string containing the file or directory name without extension. The
method is available through the FileSystemObject
in VBScript.
Key features include automatic path parsing and extension removal. It works with
both absolute and relative paths. GetBaseName
is often used with
other FileSystemObject methods. Understanding this method helps in file
processing scripts.
Basic File Name Extraction
This example demonstrates the simplest use of GetBaseName
to
extract a filename from a path. It shows how the method removes both the
directory path and file extension. The result is just the base filename.
Set fso = CreateObject("Scripting.FileSystemObject") baseName = fso.GetBaseName("C:\Documents\report.docx") WScript.Echo baseName ' Output: report Set fso = Nothing
The script creates a FileSystemObject
and calls
GetBaseName
. The path "C:\Documents\report.docx" is processed to
return "report". Both the directory path and .docx extension are removed.
Handling Files Without Extensions
GetBaseName
correctly handles files that don't have extensions.
This example shows the method's behavior with extensionless files. The entire
filename is returned when no extension exists.
Set fso = CreateObject("Scripting.FileSystemObject") baseName1 = fso.GetBaseName("C:\Temp\README") baseName2 = fso.GetBaseName("D:\Projects\Makefile") WScript.Echo baseName1 ' Output: README WScript.Echo baseName2 ' Output: Makefile Set fso = Nothing
Both examples return the complete filename since no extension is present.
GetBaseName
doesn't modify names without extensions. This behavior
is consistent with files that do have extensions.
Working with Directory Paths
GetBaseName
can extract the last component from directory paths.
This example shows how it works with folder structures. The method returns the
final directory name in the path.
Set fso = CreateObject("Scripting.FileSystemObject") dirName = fso.GetBaseName("C:\Users\Public\Documents\Projects") WScript.Echo dirName ' Output: Projects Set fso = Nothing
The script processes a directory path and returns just "Projects". This
demonstrates GetBaseName
's ability to work with both files and
directories. The method treats the last path component the same way in both
cases.
Multiple Extensions Handling
This example shows how GetBaseName
handles files with multiple
dots in their names. The method only removes the last extension, preserving
other dots in the filename. This is important for complex file naming schemes.
Set fso = CreateObject("Scripting.FileSystemObject") baseName1 = fso.GetBaseName("archive.tar.gz") baseName2 = fso.GetBaseName("project.backup.zip") WScript.Echo baseName1 ' Output: archive.tar WScript.Echo baseName2 ' Output: project.backup Set fso = Nothing
The method removes only the last extension (.gz and .zip) from each filename. Intermediate dots remain part of the returned base name. This behavior is consistent with standard file extension conventions.
Combining with Other FileSystemObject Methods
This example demonstrates using GetBaseName
with other
FileSystemObject methods. It shows a practical file processing scenario where
multiple path operations are combined.
Set fso = CreateObject("Scripting.FileSystemObject") filePath = "C:\Data\Reports\Q1_2025.xlsx" ' Get just the filename with extension fileName = fso.GetFileName(filePath) ' Get just the base name without extension baseName = fso.GetBaseName(filePath) WScript.Echo "Full path: " & filePath WScript.Echo "Filename: " & fileName WScript.Echo "Base name: " & baseName Set fso = Nothing
The script shows how to extract different parts of a file path. GetFileName
gets the full filename, while GetBaseName
removes the extension.
This combination is powerful for file processing tasks.
Source
FileSystemObject Documentation
In this article, we have explored the GetBaseName
method in VBScript,
covering its usage and practical applications. From simple filename extraction to
complex path processing, these examples demonstrate reliable file name handling.
With this knowledge, you can enhance your file processing scripts with precise
filename control.
Author
List all VBScript tutorials.