VBScript ShortName 属性
最后修改于 2025 年 4 月 9 日
VBScript 中的 ShortName
属性是 FileSystemObject
对象模型的一部分。它返回文件或文件夹的短(8.3)名称版本。此属性对于与需要 8.3 文件名格式的旧版系统兼容非常有用。它可用于文件和文件夹对象。
ShortName
为旧版 Windows 提供向后兼容性。8.3 格式由最多 8 个字符的名称和 3 个字符的扩展名组成。本教程将通过实际示例介绍 ShortName
的用法。
ShortName 属性概述
ShortName
属性返回一个表示文件或文件夹短名称的字符串。它是一个只读属性,可通过 VBScript 中的 FileSystemObject
访问。该属性可用于现有文件和目录。
主要功能包括从长文件名自动转换为 8.3 格式。它不会修改实际文件,只是提供一个替代名称。了解此属性有助于处理旧版应用程序或系统。
获取文件的 ShortName
此示例演示了如何检索文件的短名称。它显示了 ShortName
属性与 File 对象的基本用法。脚本同时获取长名称和短名称进行比较。
Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.GetFile("C:\Windows\System32\notepad.exe") WScript.Echo "Long name: " & file.Name WScript.Echo "Short name: " & file.ShortName Set file = Nothing Set fso = Nothing
该脚本创建一个 FileSystemObject
并获取对 notepad.exe 的引用。然后,它同时显示常规名称和短名称。短名称通常以 8.3 格式显示,例如 NOTEPAD.EXE。
获取文件夹的 ShortName
此示例展示了如何检索目录的短名称。过程与文件类似,但使用 Folder 对象。它演示了 ShortName
属性在目录上的用法。
Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder("C:\Program Files") WScript.Echo "Long name: " & folder.Name WScript.Echo "Short name: " & folder.ShortName Set folder = Nothing Set fso = Nothing
该脚本获取“Program Files”文件夹并显示两个名称。短名称通常显示为 PROGRA~1 或类似的名称。这对于处理无法处理路径中空格的旧版应用程序很有用。
在路径构造中使用 ShortName
此示例演示了如何使用 ShortName
来构建与旧系统兼容的路径。它将文件夹和文件的短名称组合起来创建一个完整的路径。这可确保最大程度的兼容性。
Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder("C:\Program Files") Set file = fso.GetFile("C:\Program Files\Internet Explorer\iexplore.exe") shortPath = folder.ShortName & "\" & file.ShortName WScript.Echo "Short path: " & shortPath Set file = Nothing Set folder = Nothing Set fso = Nothing
该脚本使用目录和文件的短名称来构造路径。这将创建类似“PROGRA~1\IEXPLORE.EXE”的路径。此类路径在不支持长文件名或空格的旧系统中有效。
列出目录中的 ShortName
此示例展示了如何列出目录中所有文件的短名称。它演示了处理多个文件并访问它们的 ShortName
属性。该脚本提供了完整的目录列表。
Set fso = CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder("C:\Windows\System32") WScript.Echo "Files in " & folder.Name & ":" For Each file In folder.Files WScript.Echo file.Name & " (" & file.ShortName & ")" Next Set folder = Nothing Set fso = Nothing
该脚本列出了 System32 中的所有文件,包括长名称和短名称。每行都显示了两种格式的文件名。这对于比较命名约定或对旧系统问题进行故障排除很有用。
检查 ShortName 可用性
此示例检查给定文件的短名称是否存在。某些系统可能禁用了短名称。该脚本演示了在使用 ShortName
属性时如何进行错误处理。
On Error Resume Next Set fso = CreateObject("Scripting.FileSystemObject") Set file = fso.GetFile("C:\Windows\System32\notepad.exe") If Err.Number = 0 Then shortName = file.ShortName If Err.Number = 0 Then WScript.Echo "Short name available: " & shortName Else WScript.Echo "Short names not enabled on this system" End If Else WScript.Echo "File not found" End If Set file = Nothing Set fso = Nothing
该脚本尝试获取 notepad.exe 的短名称。如果系统上禁用了短名称,它将显示相应的消息。这有助于创建在不同环境中运行的健壮脚本。
来源
在本文中,我们探讨了 VBScript 中的 ShortName
属性,涵盖了其用法和实际应用。从基本的文件操作到目录列表,这些示例演示了如何使用 8.3 文件名。有了这些知识,您就可以增强脚本,以更好地与旧系统兼容。