如何在visual basic脚本上引用home文件夹
让我开始说我是一个linux的家伙,并不真正熟悉VBS甚至windows全局变量。如何在visual basic脚本上引用home文件夹
我被要求更新VBS脚本,该脚本基本上将最新版本的访问表单复制到计算机。目前它将此访问表单放入C:\ MedMaint中。问题在于我们不在此位置以管理员身份运行。因此,当新用户尝试访问vbs脚本时,该文件夹必须由原始用户删除。我需要此脚本更改为〜/ MedMaint的linux的equivalant,或 “C:\ Documents和Settings \ MyUserName输入\应用数据\ MedMaint”
下面是代码
If Not FSO.FileExists("c:\MedMaint\" & File.Name) Then
FSO.CopyFile File.Path, "c:\MedMaint\" ' copy the missing file
Else
Set RPFile = FSO.GetFile("c:\MedMaint\" & File.Name) ' Get the file object from the local object
If (File.DateLastModified >= RPFile.DateLastModified) Then
FSO.CopyFile File.Path, "c:\MedMaint\"
我的样品想知道如何将c:\ MedMaint \引用更改为用户的主目录
为了得到用户的配置文件夹的路径(如C:\ Documents和Settings \ <用户名>在Windows XP或C:在Windows Vista \用户\ <用户名>) ,你可以做任何以下的:
-
使用
WshShell.ExpandEnvironmentStrings
方法评估USERPROFILE
环境变量:Set oShell = CreateObject("WScript.Shell") strHomeFolder = oShell.ExpandEnvironmentStrings("%USERPROFILE%")
-
使用
Shell.Namespace
方法检索的文件夹路径:Const ssfPROFILE = &H28 Set oShell = CreateObject("Shell.Application") strHomeFolder = oShell.NameSpace(ssfPROFILE).Self.Path
如果需要应用程序数据的文件夹的路径(例如C:在Windows XP或Ç\的Documents and Settings \ <用户名> \应用数据:\用户\ <用户名> \ AppData的\ Windows Vista中漫游),你可以使用类似的代码:
Set oShell = CreateObject("WScript.Shell")
strHomeFolder = oShell.ExpandEnvironmentStrings("%APPDATA%")
''# or
Const ssfAPPDATA = &H1A
Set oShell = CreateObject("Shell.Application")
strHomeFolder = oShell.NameSpace(ssfAPPDATA).Self.Path
要将文件夹的名称附加到路径,你可以简单地使用字符串连接这样的:
strMedMaintFolder = strHomeFolder & "\MedMaint"
Alernatively,如果您的脚本包含许多路径浓atenations,我建议使用FileSystemObject.BuildPath
方法,因为它需要照顾路径分隔符(\
)为您:
Set oFSO = CreateObject("Scripting.FileSystemObject")
strMedMaintFolder = fso.BuildPath(strHomeFolder, "MedMaint")
如果您使用的是Windows脚本宿主,以下是一种方法。
Set WshShell = CreateObject("WScript.Shell")
strHomeFolder = WshShell.ExpandEnvironmentStrings("%USERPROFILE%")
谢谢你,这是我需要的东西......“设置oShell =的CreateObject(” WScript的。Shell“) strHomeFolder = oShell.ExpandEnvironmentStrings(”%APPDATA%“)” – 2010-10-05 20:37:12