tags:

views:

277

answers:

2

When using a FileSystemObject you can reference the directory the script was run from by using the path ".". Is it possible to change what the FileSystemObject thinks is the current directory so you can use the "." path syntax for other directories?

Example:

Set fso = CreateObject("Scripting.FileSystemObject")  
Set f1 = fso.GetFolder(".") ' Returns the current directory  
Set f2 = fso.GetFolder(".\backup") ' Returns the "backup" directory under the current directory

As a simplified example, is there a method to call on fso so that the fso.GetFolder(".") call returns the backup directory instead?

A: 

Not in general.

But why not find the current folder and store it:

Set fso = CreateObject("Scripting.FileSystemObject")
currentPath = fso.GetAbsolutePathName(".")
Mitch Wheat
+1  A: 

You can change the current working folder for your script using the WshShell.CurrentDirectory property:

Dim oShell : Set oShell = CreateObject("WScript.Shell")
oShell.CurrentDirectory = ".\backup"

And here's a Hey, Scripting Guy! article on the subject: How Can I Change the Working Folder of a Script?

Helen