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

Vbscript 如何在visual basic脚本上引用主文件夹,vbscript,Vbscript,首先,我要说的是,我是一个linux爱好者,对VBS甚至windows全局变量都不太熟悉 我被要求更新一个VBS脚本,它基本上将最新版本的访问表单复制到计算机上。目前,它将此访问表单放在C:\MedMaint中。问题是我们在此位置不以管理员身份运行。因此,当新用户尝试访问vbs脚本时,原始用户必须删除该文件夹。我需要将此脚本更改为~/MedMaint的linux等效脚本,或“C:\Documents and Settings\MyUserName\Application Data\MedMain

首先,我要说的是,我是一个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\" 

我想知道如何将c:\MedMaint\reference更改为用户的home dir

您可以使用Shell对象


看看链接

如果您使用的是Windows脚本主机,这里有一种方法

Set WshShell = CreateObject("WScript.Shell")
strHomeFolder = WshShell.ExpandEnvironmentStrings("%USERPROFILE%")

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

  • 使用以下方法评估
    USERPROFILE
    环境变量:

  • 使用以下方法检索文件夹路径:

如果您需要应用程序数据文件夹的路径(例如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

要将文件夹名称附加到路径,只需使用如下字符串连接:

strMedMaintFolder = strHomeFolder & "\MedMaint"
另外,如果脚本包含许多路径连接,我建议使用该方法,因为它会为您处理路径分隔符(
\
):


谢谢你这就是我需要的。。。。“设置oShell=CreateObject(“WScript.Shell”)strHomeFolder=oShell.ExpandEnvironmentString(“%APPDATA%”)”
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"
Set oFSO = CreateObject("Scripting.FileSystemObject")
strMedMaintFolder = fso.BuildPath(strHomeFolder, "MedMaint")