it-swarm.com.de

Den aktuellen temporären Verzeichnispfad in VBScript abrufen?

Der Trick VB, um den Pfad des aktuellen temporären Verzeichnisses abzurufen:

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

schlägt in VBScript fehl. So?

21
Fabien
WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2)

Ich habe eine Weile gebraucht, um es bei Google zu finden. Also für den nächsten, der das gleiche sucht wie ich ...

43
Fabien
Const WindowsFolder = 0

Const SystemFolder = 1

Const TemporaryFolder = 2

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

Dim tempFolder: tempFolder = fso.GetSpecialFolder(TemporaryFolder)
35
AnthonyWJones

Andere Möglichkeit:

CreateObject("WScript.Shell").ExpandEnvironmentStrings("%Temp%")
13
Fionnuala

Sie können auch weiterhin die GetTempPath-API verwenden. Es ist ein bisschen schwierig, APIs von vbscript aufzurufen. Hier einige Hinweise, wie Sie Win32-API-Aufrufe von vbscript aus durchführen:

Referenz 1

Referenz 2

Referenz 3

1
Makaveli84

Basierend auf AnthonyWJones 'Antwort , hier ist meine Lösung:

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

So würden Sie beispielsweise GetFolder(TempFolder) verwenden, um den Pfadnamen des temporären Ordners des Benutzers abzurufen.

0
COG