Vbscript 获取系统临时文件夹?

Vbscript 获取系统临时文件夹?,vbscript,filesystems,Vbscript,Filesystems,我在找类似的东西。但是,我特别希望动态查找系统临时文件夹的位置(即服务使用的临时文件夹) 这可能吗 谢谢 Set objShell = CreateObject("WScript.Shell") Set colEnvironment = objShell.Environment("PROCESS") objPath = colEnvironment("temp") WScript.Echo objPath 那么 Set objShell = CreateObject("WScript.

我在找类似的东西。但是,我特别希望动态查找系统临时文件夹的位置(即服务使用的临时文件夹)

这可能吗

谢谢

Set objShell = CreateObject("WScript.Shell")
Set colEnvironment = objShell.Environment("PROCESS")
objPath = colEnvironment("temp")
WScript.Echo objPath    
那么

Set objShell = CreateObject("WScript.Shell")
Set colEnvironment = objShell.Environment("PROCESS")
objPath = colEnvironment("windir")
WScript.Echo objPath & "\temp"    
希望这对C#中的

有所帮助,它的

System.Collections.IDictionary Vars=System.Environment.GetEnvironmentVariables()

字符串TempPath=Vars[“TEMP”]

你会得到一个完整的元素数组。。。Path、Temp、SessionName、PathText、UserDomain、SystemDrive、WinDir等。

在这里(在VBS中)

我不确定您的系统是否会有一个名为“TEMP”的环境变量,所以请转到命令行并键入

set

您将获得环境变量及其值的列表。选择一个包含您的临时文件夹的文件夹。

对此进行了一些研究之后,我认为没有办法使用环境变量来捕获另一个用户的%temp%文件夹的位置(在本例中为系统用户).

这可能有一些用处:

系统环境变量存储在注册表项中:HKEY\U LOCAL\U MACHINE\SYSTEM\ControlSet001\Control\Session Manager\environment

用户的环境变量存储在注册表项中:HKEY_users[user SID]\environment


为了获取任何环境变量(特别是TEMP)的值,需要检查指定用户的分支中是否存在此变量。如果它在那里,那么你可以使用它。如果不存在,则需要从系统注册表分支获取一个值。

这似乎仍然返回“my”temp dir。而不是系统目录。e、 g.在WinXP上,我希望得到“C:\WINSOWS\Temp”,而不是我自己的Temp目录。“windir”是否与其他操作系统一致?Server2008上运行的服务是否仍使用%windir%\Temp?您也可以使用“systemroot”而不是“windir”。在系统中,这些都是默认的环境变量,我认为这不应该随着windows的新版本而改变,否则在升级服务器时,所有以前安装的应用程序(使用这些环境变量)都会失败。无论如何,让我在这里清楚地提一下,我不知道服务器2008的服务临时文件夹是否位于“%windir%\temp”或“%systemroot%\temp”。我想任何安装了sever 2008的人都可以通过在运行窗口中尝试%systemroot%\temp来帮助我们,并让我们知道。在C中,我更喜欢使用:Path.GetTempPath()是的,但是,类似这样的东西会向其他人暴露一组他们可能不知道的元素。在System.Environment区域有很多可用的东西。我认为解决方案需要vbscript。
set