我想将一个变量分配给位于' Users'中的文件路径。 C:Drive中的文件夹。这个文件路径对于每个用户都是不同的,但我无法弄清楚要使用哪个环境变量,以及如何将它与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
行弹出的错误是
参数数量错误或属性分配无效
答案 0 :(得分:4)
使用%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
)而修改了路径。
答案 1 :(得分:1)
适当的环境变量是" 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环境变量,您就可以获得大量示例和参考资料。