是否在VBScript中获取当前临时目录路径?
获取当前临时目录路径的VB技巧:是否在VBScript中获取当前临时目录路径?,vbscript,Vbscript,获取当前临时目录路径的VB技巧: Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long 在VBScript中失败。那么 WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2) 我花了一段时
Private Declare Function GetTempPath Lib "kernel32" Alias "GetTempPathA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long
在VBScript中失败。那么
WScript.CreateObject("Scripting.FileSystemObject").GetSpecialFolder(2)
我花了一段时间才在谷歌上找到它。因此,对于下一个寻找与我相同的人…另一种可能性:
Const WindowsFolder = 0
Const SystemFolder = 1
Const TemporaryFolder = 2
Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")
Dim tempFolder: tempFolder = fso.GetSpecialFolder(TemporaryFolder)
CreateObject("WScript.Shell").ExpandEnvironmentStrings("%Temp%")
您还可以继续使用
GetTempPath
API。不过,从vbscript调用API有点棘手。以下是有关如何从vbscript进行Win32 API调用的一些提示:
完全基于,以下是我的解决方案:
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)
获取用户临时文件夹的路径名。谢谢,Patrick,我没有粘贴一行,但这样更好。没问题。我正要粘贴我自己的、几乎完全相同的答案,突然我看到你又一次以一秒之差打败了我;)我最喜欢这个,因为它和GetSpecialFolder
一样容易使用,但不太晦涩。至少,对于任何曾经使用过DOS或Windows环境变量的人来说,这是一个非常直观和自我记录的问题。Fabien的回答和这一个一样正确,但是,好的文档让其他人更容易阅读。这让我感到C:\Windows
。Fabien的回答让我找到了正确的文件夹R:\Temp
,你可以描述更多细节。实际上,这些链接不是很有用,这应该是一个评论。