ZetCode

VBScript GetBaseName 方法

最后修改于 2025 年 4 月 9 日

VBScript 中的 GetBaseName 方法是 FileSystemObject 的一部分。它从文件路径中提取基本名称,去除目录路径和文件扩展名。此方法对于在不带完整路径或扩展名的情况下处理文件名非常有用。

GetBaseName 同时处理文件和目录,返回路径的最后一个组件。它不验证路径是否存在。本教程将通过实际示例涵盖 GetBaseName 的用法。

GetBaseName 方法概述

GetBaseName 方法将其文件路径作为参数。它返回一个不带扩展名的文件或目录名称的字符串。该方法可通过 VBScript 中的 FileSystemObject 使用。

主要功能包括自动路径解析和扩展名移除。它适用于绝对路径和相对路径。GetBaseName 通常与其他 FileSystemObject 方法一起使用。理解此方法有助于进行文件处理脚本。

基本文件名提取

此示例演示了 GetBaseName 从路径中提取文件名的最简单用法。它展示了该方法如何同时移除目录路径和文件扩展名。结果仅仅是基本文件名。

basic_getbasename.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
baseName = fso.GetBaseName("C:\Documents\report.docx")
WScript.Echo baseName ' Output: report

Set fso = Nothing

该脚本创建一个 FileSystemObject 并调用 GetBaseName。将处理路径 "C:\Documents\report.docx" 以返回 "report"。目录路径和 .docx 扩展名都被移除。

处理无扩展名的文件

GetBaseName 可以正确处理没有扩展名的文件。此示例展示了该方法在无扩展名文件上的行为。当不存在扩展名时,将返回整个文件名。

no_extension.vbs
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

由于不存在扩展名,两个示例都返回完整的文件名。GetBaseName 不会修改没有扩展名的名称。此行为与具有扩展名的文件一致。

使用目录路径

GetBaseName 可以从目录路径中提取最后一个组件。此示例展示了它如何处理文件夹结构。该方法返回路径中的最后一个目录名称。

directory_path.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
dirName = fso.GetBaseName("C:\Users\Public\Documents\Projects")

WScript.Echo dirName ' Output: Projects

Set fso = Nothing

该脚本处理目录路径并仅返回 "Projects"。这表明 GetBaseName 能够同时处理文件和目录。该方法在两种情况下都以相同方式处理最后一个路径组件。

多扩展名处理

此示例展示了 GetBaseName 如何处理名称中包含多个点的文件。该方法仅移除最后一个扩展名,保留文件名中的其他点。这对于复杂的文件命名方案很重要。

multiple_extensions.vbs
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

该方法仅移除每个文件名中的最后一个扩展名(.gz 和 .zip)。中间的点仍然是返回的基本名称的一部分。此行为符合标准文件扩展名约定。

与其它 FileSystemObject 方法结合使用

此示例演示了将 GetBaseName 与其他 FileSystemObject 方法结合使用。它展示了一个实际的文件处理场景,其中结合了多个路径操作。

combined_methods.vbs
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

该脚本演示了如何提取文件路径的不同部分。GetFileName 获取完整文件名,而 GetBaseName 移除扩展名。这种组合对于文件处理任务非常强大。

来源

FileSystemObject 文档

在本文中,我们探讨了 VBScript 中的 GetBaseName 方法,涵盖了其用法和实际应用。从简单的文件名提取到复杂的路径处理,这些示例展示了可靠的文件名处理。有了这些知识,您就可以通过精确的文件名控制来增强您的文件处理脚本。

作者

我的名字是 Jan Bodnar,我是一名充满热情的程序员,拥有多年的编程经验。我从 2007 年开始撰写编程文章。到目前为止,我已撰写了 1400 多篇文章和 8 本电子书。我在编程教学方面有八年多的经验。

列出所有 VBScript 教程