Как получить переменную среды в формате 8.3? - PullRequest
0 голосов
/ 27 апреля 2020

У меня есть простой Sub, такой как:

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 функция возвращает его в стандартном (UN C) формате. Любое предложение?

1 Ответ

0 голосов
/ 27 апреля 2020

Я решил это так. Выглядит странно, но работает!

Хитрость не в том, чтобы получить UN C из Environ, а в том, чтобы указать UN C путь к wscript.

Если путь в формате UN C Wscript хочет двойные кавычки вокруг него. С VBA становится немного сложнее, но ничего страшного: вам просто нужно еще раз удвоить кавычки.

Private Sub Command90_Click()
    Dim Perc As String

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

    Shell Perc
End Sub

Я оставил папку DATABA~1 в формате 8.3, но я также мог вставить UN C способ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...