ZetCode

VBScript ShortPath 属性

最后修改于 2025 年 4 月 9 日

VBScript 中的 ShortPath 属性是 FileSystemObject 的一部分。它返回文件或文件夹的短路径名称(8.3 格式)。当处理需要旧版 DOS 样式命名约定的旧系统或应用程序时,此属性非常有用。

ShortPath 将长文件名转换为其 8.3 格式的等效名称。它有助于与旧软件保持兼容性。本教程通过实际示例涵盖 ShortPath 的用法。

ShortPath 属性概述

ShortPath 属性可通过 VBScript 中的 FileSystemObject 访问。它返回一个表示短路径名称的字符串。该属性是只读的,可与文件和文件夹配合使用。

主要功能包括将长名称自动转换为 8.3 格式。它要求文件或文件夹存在。ShortPath 对于旧系统集成特别有用。了解此属性有助于创建兼容的文件处理脚本。

基本 ShortPath 用法

此示例演示了 ShortPath 获取文件短路径的最简单用法。它展示了如何通过文件对象访问该属性。脚本同时显示原始路径名和短路径名。

basic_shortpath.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.GetFile("C:\Program Files\Internet Explorer\iexplore.exe")

WScript.Echo "Original path: " & file.Path
WScript.Echo "Short path: " & file.ShortPath

Set file = Nothing
Set fso = Nothing

该脚本创建一个 FileSystemObject 并获取一个文件对象。然后,它显示原始路径和短路径。短路径通常采用 8.3 格式(例如,PROGRA~1\INTERN~1\IEXPLORE.EXE)。

获取文件夹 ShortPath

此示例展示了如何将 ShortPath 与文件夹一起使用。它演示了如何获取目录的短路径。此过程与处理文件类似,但使用的是文件夹对象。

folder_shortpath.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\Program Files")

WScript.Echo "Original path: " & folder.Path
WScript.Echo "Short path: " & folder.ShortPath

Set folder = Nothing
Set fso = Nothing

该脚本检索“Program Files”目录的短路径。输出将显示 8.3 格式的版本(例如,C:\PROGRA~1)。在处理需要短路径名的应用程序时,这非常有用。

在文件操作中使用 ShortPath

此示例演示了如何在实际文件操作中使用 ShortPath。它展示了在执行命令时如何使用短路径。一些旧版命令在使用短路径时效果更好。

file_operation_shortpath.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.GetFile("C:\Program Files\Internet Explorer\iexplore.exe")

shortPath = file.ShortPath
WScript.Echo "Executing: " & shortPath

Set wsh = CreateObject("WScript.Shell")
wsh.Run shortPath

Set file = Nothing
Set fso = Nothing
Set wsh = Nothing

该脚本获取 Internet Explorer 的短路径并执行它。一些较旧的应用程序或脚本可能需要短路径格式。这确保了跨不同系统的兼容性。

使用 ShortPath 处理带空格的路径

此示例展示了 ShortPath 如何处理包含空格的路径。某些命令或应用程序在处理带空格的路径时存在问题。短路径版本消除了空格。

spaces_shortpath.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set file = fso.GetFile("C:\Documents and Settings\All Users\Desktop\Sample.txt")

WScript.Echo "Original path (with spaces): " & file.Path
WScript.Echo "Short path (no spaces): " & file.ShortPath

Set file = Nothing
Set fso = Nothing

该脚本演示了如何将带空格的路径转换为其短版本。短路径使用 8.3 格式替换空格和长名称。这使得路径与旧系统更加兼容。

比较 ShortPath 和 LongPath

此示例并排显示短路径和长路径进行比较。它有助于理解 ShortPath 如何转换原始路径。脚本并排显示两个版本。

compare_paths.vbs
Set fso = CreateObject("Scripting.FileSystemObject")
Set folder = fso.GetFolder("C:\Program Files (x86)\Common Files")

WScript.Echo "Long path: " & folder.Path
WScript.Echo "Short path: " & folder.ShortPath

Set folder = Nothing
Set fso = Nothing

该脚本获取一个具有复杂名称的文件夹,并显示两个路径。短路径通常是 C:\PROGRA~2\COMMON~1 之类的。这种比较有助于理解转换过程。

来源

FileSystemObject 文档

在本文中,我们探讨了 VBScript 中的 ShortPath 属性,涵盖了其用法和实际应用。从基本文件路径到复杂的目录结构,这些示例展示了可靠的路径转换。通过这些知识,您可以增强脚本的兼容性。

作者

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

列出所有 VBScript 教程