首先让我说我是一个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\<用户名>),您可以执行以下任一操作:
USERPROFILE使用以下WshShell.ExpandEnvironmentStrings方法评估环境变量:
Set oShell = CreateObject("WScript.Shell")
strHomeFolder = oShell.ExpandEnvironmentStrings("%USERPROFILE%")
Run Code Online (Sandbox Code Playgroud)使用以下Shell.Namespace方法检索文件夹路径:
Const ssfPROFILE = &H28
Set oShell = CreateObject("Shell.Application")
strHomeFolder = oShell.NameSpace(ssfPROFILE).Self.Path
Run Code Online (Sandbox Code Playgroud)如果您需要应用程序数据文件夹的路径(例如,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)