Let me start by saying that I’m a linux guy and not really familiar with VBS or even windows global variables.
I’m being called upon to update a VBS script which basically copies the latest version of a access form to the computer. Currently it puts this access form in C:\MedMaint. The problem is that we do not run as administrators in this location. So when a new user tries to access the vbs script, the folder must be deleted by the original user. I need to change this script to the linux equivalant of ~/MedMaint, or “C:\Documents and Settings\MyUserName\Application Data\MedMaint”
Here is a sample of the code
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\"
I would like to know how to change the c:\MedMaint\ reference to the user’s home dir
To get the path of the user’s profile folder (e.g. C:\Documents and Settings\<username> in Windows XP or C:\Users\<username> in Windows Vista), you can do any of the following:
Evaluate the
USERPROFILEenvironment variable using theWshShell.ExpandEnvironmentStringsmethod:Retrieve the folder path using the
Shell.Namespacemethod:If you need the path of the application data folder (e.g. C:\Documents and Settings\<username>\Application Data in Windows XP or C:\Users\<username>\AppData\Roaming in Windows Vista), you can use similar code:
To append a folder name to a path, you could simply use string concatenation like this:
Alernatively, if your script contains many path concatenations, I suggest using the
FileSystemObject.BuildPathmethod, because it takes care of path separators (\) for you: