Получить текущий путь к временному каталогу в VBScript? - PullRequest
21 голосов
/ 08 января 2009

Уловка VB для получения пути к текущему временному каталогу:

Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long 

терпит неудачу в VBScript. Так?

Ответы [ 5 ]

43 голосов
/ 08 января 2009
WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2)

Мне понадобилось время, чтобы найти его в Google. Так что следующий ищет то же, что и я ...

35 голосов
/ 08 января 2009
Const WindowsFolder = 0

Const SystemFolder = 1

Const TemporaryFolder = 2

Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")

Dim tempFolder: tempFolder = fso.GetSpecialFolder(TemporaryFolder)
13 голосов
/ 08 января 2009

Другая возможность:

CreateObject("WScript.Shell").ExpandEnvironmentStrings("%Temp%")
1 голос
/ 25 сентября 2013

Вы также можете продолжать использовать GetTempPath API. Хотя немного сложно вызывать API из vbscript. Вот несколько советов о том, как выполнять вызовы Win32 API из vbscript:

Ссылка 1

Ссылка 2

Ссылка 3

0 голосов
/ 15 июля 2018

Основано исключительно на ответе AnthonyWJones , вот мое решение:

Public Enum SpecialFolder
    WindowsFolder = 0
    SystemFolder = 1
    TempFolder = 2
End Enum

Public Function GetFolder(folder As Integer) As String
    Dim objFSO  As Object

    Set objFSO = CreateObject("Scripting.FileSystemObject")

    GetFolder = objFSO.GetSpecialFolder(folder)
End Function

Так, например, вы бы использовали GetFolder(TempFolder), чтобы получить путь к временной папке пользователя.

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