文件路径使用哪个环境变量?

Which environment variable to use for filepath?

我想将变量分配给位于 C: 驱动器 'Users' 文件夹中的文件路径。这个文件路径对于每个用户都是不同的,但我无法弄清楚要使用哪个环境变量,以及如何将它与 VBScript 一起使用。

示例代码:

Set wshShell = CreateObject("WScript.Shell")
Set wshSystemEnv = wshShell.Environment("USER")

'The folder where to save the file:
strFolder = "C:\Users\" & wshSystemEnv & "\AppData\Roaming\Microsoft\AddIns"

那么如何在文件路径中使用 wshSystemEnv 变量,它是否是正确的变量?

strFolder行弹出的错误是

Wrong number of arguments or invalid property assignment

合适的环境变量是"USERNAME"。

Set wshShell = CreateObject("WScript.Shell")
wshSystemEnv = wshShell.ExpandEnvironmentStrings( "%USERNAME%" )
strFolder = "C:\Users\" & wshSystemEnv & "\AppData\Roaming\Microsoft\AddIns" 

或者您也可以使用:

wshSystemEnv = wshShell.Environment("PROCESS").Item("USERNAME")

只需 Google VBScript 环境变量,您将获得大量示例和参考。

使用%APPDATA%环境变量:

Set wshShell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")

appData = wshShell.ExpandEnvironmentStrings("%APPDATA%")

strFolder = fso.BuildPath(appData, "Microsoft\AddIns")

始终使用 BuildPath 方法构建路径。


您从代码中得到的错误是因为 wshSystemEnv 是一个对象,不能与这样的字符串连接。


环境变量 %APPDATA% 通常指向用户(漫游)配置文件中的应用程序数据文件夹。由于 Windows Vista Microsoft 将该文件夹拆分为 three subfolders,其中只有一个仍然是漫游配置文件的一部分 (AppData\Roaming)。其他 2 个主要出于同步性能原因保留在本地。

之所以 %APPDATA% 指向 Roaming 子文件夹而不是 %USERPROFILE%\AppData 很可能是指向父文件夹需要很多应用程序供应商才能发布由于层次结构的附加级别(%APPDATA%\application\foo%APPDATA%\Roaming\application\foo),使用修改后的路径进行更新。