首页 > 解决方案 > 如何获取 8.3 格式的环境变量?

问题描述

我有一个像这样的简单子:

Private Sub Command90_Click()
    Dim Perc As String

    Perc = Environ("onedrivecommercial")
    Perc = "wscript " & Perc & "\DATABA~1\script1.vbs"

    Shell Perc
End Sub

在哪里%onedrivecommercial%="C:\Onedrive - Company"

但它给出了错误,因为 wscript 要求路径和文件名采用 8.3 格式,而environ函数以标准(UNC)格式返回它。有什么建议吗?

标签: vba

解决方案


我是这样解决的。看起来很奇怪,但它有效!

诀窍不是从 Environ 获取 UNC,而是为 wscript 提供 UNC 路径。

如果路径是 UNC 格式,wscript 需要双引号。使用 VBA 会变得有点棘手,但没关系:您只需再次将引号加倍。

Private Sub Command90_Click()
    Dim Perc As String

    Perc = Environ("onedrivecommercial")
    Perc = "wscript """"""" & Perc & "\DATABA~1\script1.vbs"""""""

    Shell Perc
End Sub

我以 8.3 格式保留文件夹DATABA~1,但我也可以以 UNC 方式输入。


推荐阅读