如何在visual basic脚本上引用home文件夹

Ada*_*ler 7 vbscript

首先让我说我是一个Linux人员,并不熟悉VBS甚至Windows全局变量.

我被要求更新VBS脚本,该脚本基本上将访问表单的最新版本复制到计算机.目前,它将此访问形式放在C:\ MedMaint中.问题是我们不在此位置以管理员身份运行.因此,当新用户尝试访问vbs脚本时,原始用户必须删除该文件夹.我需要将此脚本更改为〜/ MedMaint的linux等效项,或"C:\ Documents and Settings\MyUserName\Application Data\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\" 
Run Code Online (Sandbox Code Playgroud)

我想知道如何将c:\ MedMaint \引用更改为用户的主目录

Hel*_*len 18

要获取用户配置文件文件夹的路径(例如,Windows XP中的C:\ Documents and Settings\<用户名>或Windows Vista中的C:\ Users\<用户名>),您可以执行以下任一操作:

如果您需要应用程序数据文件夹的路径(例如,Windows XP中的C:\ Documents and Settings\<用户名>\Application Data或Windows Vista中的C:\ Users\<用户名>\AppData\Roaming),您可以使用类似的码:

Set oShell = CreateObject("WScript.Shell")
strHomeFolder = oShell.ExpandEnvironmentStrings("%APPDATA%")

''# or

Const ssfAPPDATA = &H1A
Set oShell = CreateObject("Shell.Application")
strHomeFolder = oShell.NameSpace(ssfAPPDATA).Self.Path
Run Code Online (Sandbox Code Playgroud)


要将文件夹名称附加到路径,您可以简单地使用字符串连接,如下所示:

strMedMaintFolder = strHomeFolder & "\MedMaint"
Run Code Online (Sandbox Code Playgroud)

另外,如果您的脚本包含许多路径连接,我建议使用该FileSystemObject.BuildPath方法,因为它会\为您处理路径分隔符():

Set oFSO = CreateObject("Scripting.FileSystemObject")
strMedMaintFolder = fso.BuildPath(strHomeFolder, "MedMaint") 
Run Code Online (Sandbox Code Playgroud)