ZetCode

VBScript GetAbsolutePathName 方法

最后修改于 2025 年 4 月 9 日

VBScript 中的 GetAbsolutePathName 方法是 FileSystemObject 的一部分。它将相对路径转换为完整的绝对路径。此方法解析像 “..” 或 “.” 这样的相对路径引用。对于脚本中可靠的文件操作至关重要。

GetAbsolutePathName 在转换路径时使用当前目录作为参考。它处理各种路径格式并规范化输出。本教程将通过实际示例介绍 GetAbsolutePathName

GetAbsolutePathName 方法概述

GetAbsolutePathName 方法接受一个参数:一个路径字符串。它返回该路径的绝对版本。该方法可通过 VBScript 脚本中的 FileSystemObject 访问。

主要功能包括相对路径解析和路径规范化。它不验证路径是否存在。GetAbsolutePathName 可同时用于文件和目录路径。理解此方法有助于创建健壮的路径处理。

基本路径转换

此示例演示了将简单相对路径转换为绝对路径。它展示了 GetAbsolutePathName 的基本用法。当前目录被用作转换的参考点。

basic_absolute_path.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
absPath = fso.GetAbsolutePathName("docs\report.txt")
WScript.Echo absPath ' Output: C:\Current\Path\docs\report.txt

Set fso = Nothing

脚本创建了一个 FileSystemObject 并调用了 GetAbsolutePathName。相对路径 “docs\report.txt” 被转换为绝对路径。结果包含了当前目录路径。

解析父目录引用

此示例展示了 GetAbsolutePathName 如何处理父目录引用(“..”)。它演示了在目录树中向上导航路径。该方法正确地解析了这些相对引用。

parent_directory.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
absPath = fso.GetAbsolutePathName("..\config\settings.ini")
WScript.Echo absPath ' Output: C:\Current\config\settings.ini

Set fso = Nothing

脚本将 “..\config\settings.ini” 转换为绝对路径。 “..” 向上导航一个目录级别。结果显示了带有父目录解析的正确绝对路径。

当前目录引用

此示例演示了如何处理当前目录引用(“.”)。GetAbsolutePathName 在转换时解析这些引用。点符号在路径中代表当前目录。

current_directory.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
absPath = fso.GetAbsolutePathName(".\temp\data.dat")
WScript.Echo absPath ' Output: C:\Current\Path\temp\data.dat

Set fso = Nothing

脚本将 “.\temp\data.dat” 转换为绝对路径。 “.” 引用被解析为当前目录。输出显示了不带点符号的完整路径。

与驱动器号结合使用

此示例展示了 GetAbsolutePathName 与驱动器号一起的行为。当指定驱动器时,它将成为绝对路径的一部分。该方法在转换中保留驱动器号引用。

drive_letter.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
absPath = fso.GetAbsolutePathName("D:backup\archive.zip")
WScript.Echo absPath ' Output: D:\Current\Path\On\D\backup\archive.zip

Set fso = Nothing

脚本将 “D:backup\archive.zip” 转换为绝对路径。驱动器号在输出中被保留。请注意,D 盘上的当前路径被用作参考。

网络路径转换

此示例演示了 GetAbsolutePathName 与网络路径一起使用。UNC 路径的处理方式与本地路径不同。该方法在输出中保留了网络引用。

network_path.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
absPath = fso.GetAbsolutePathName("\\server\share\file.txt")
WScript.Echo absPath ' Output: \\server\share\file.txt

Set fso = Nothing

脚本转换了网络路径 “\\server\share\file.txt”。由于这已经是绝对路径,因此保持不变。网络路径不使用驱动器号或相对引用。

来源

FileSystemObject 文档

在本文中,我们探讨了 VBScript 中的 GetAbsolutePathName 方法。从基本转换到网络路径,这些示例展示了可靠的路径解析。通过这些知识,您可以增强脚本的健壮路径处理能力。

作者

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

列出所有 VBScript 教程