[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

Using VBScript and FileSystemObject, can I use relative paths to copy files from one folder to another?

Posted on 2011-03-23
5
Medium Priority
?
2,731 Views
Last Modified: 2012-05-11
Hello, I have the following directory structure:

C:\
    - TestSource
           FileToBeCopied.xxx
    - TestDestination
    TestCopyFile.vbs
   
I call the TestCopyFile.vbs with cscript from a DOS prompt and the .vbs contains the following:

dim objFSOPatch, testPath

tDest = ".\TestDestination\"

set objFSOPatch = CreateObject("Scripting.FileSystemObject")
objFSOPatch.CopyFile ".\TestSource\FileToBeCopied.xxx", tDest, True

set fso=Nothing

However, this does not appear to work.  Can I not use relative pathing for this?  Can someone make the change that will fix this for me, please?

Thank you!
0
Comment
Question by:RichardRiga
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
5 Comments
 
LVL 6

Accepted Solution

by:
HyperBPP earned 2000 total points
ID: 35199821
Here is an example of what you are trying to do:
http://www.sissongroup.com/Upload/Kidz-EEMC%20CMS800/Kidz-EEMC%20CMS800/COPYFILE.VBS


' CopyFile.vbs
' copy a file
' Can accept long filenames
' calling convention
'    copyfile.vbs "SourceFile" "TargetFile" Overwrite
' 
'  sourcefile is fully qualified (can be unc, can be relative path, can use wildecards) file to copy from
'  targetfile is fully qualified (can be unc, can be relative path, can use wildcards) file to copy to
'
' Returns status via Oi_ComDlg
'   0 on success
'   err.number:@fm:err.description on error 
'
' 03-06-2001  rjc     Created
' 08-27-2001  rjc     Configure for 3.75  Expects to be hosted in vb script control, called with RUN srcipt,main
'
function main(argstring)
	dim ofs ' as Scripting.FileSystemObject
	Dim oFile 'as Fileobject
	dim strSource ' as string
	Dim strTarget ' as string
	Dim strTargetFolder ' as string
	dim bOverWrite  ' as boolean
	dim strAns ' as string
	dim iArgCount
	dim params
	
	'On Error Resume Next	
	strAns = ""
	Err.Clear
	
	params = split(argstring,chr(253))
	iArgCount = Ubound(params)
	
		if iArgCount > 0 then
			strSource = params(0)   
		else
			strSource = ""
			Err.raise 50001,"Copyfile.vbs","Missing Source File"
		end if	
		
		if iArgCount > 1 then
			strTarget =  params(1)
		else
			strTarget = "" 
			Err.raise 50002,"Copyfile.vbs","Missing Target File"
		end if
		
		if iArgCount > 2 then
			bOverwrite = ( params(2) = "1" )
		else
		    bOverwrite = false
		end if
	
	set oFs = CreateObject("Scripting.FileSystemObject") 
	if Err.Number = 0 then
		if  oFs.FileExists(strSource) = false then
	  		Err.raise 50003,"Copyfile.vbs","Invalid Source File"
	  	end if	
	end if  
	
	' Simple check.  can be fooled
	if Err.Number = 0 then 
		'Target is a folder? make sure has trailing '\'	
		if ofs.FolderExists(strTarget) then
			if right(strTarget,1) <> "\" then
				strTarget = strTarget & "\"
			end if
		else
			if InStrRev(strTarget, "\") then
	    		strTargetFolder = Left(strTarget,InStrRev(strTarget, "\")-1)
	    		if ofs.FolderExists(strTargetFolder) = False then
	    			Err.raise 50004,"Copyfile.vbs","Invalid Target Folder"
	    		end if
	    	end if
	    end if	
	end if
	
	'Perform the copy. Use file object, allows copy to directory without specifying filename
	if Err.Number =  0 then
	   set oFile = ofs.GetFile(	strSource )
	   ofile.Copy strTarget, bOverwrite
	   set oFile = Nothing
	end if
	
	' Clean Up 
	set ofs = Nothing 
	
	if err.Number <>  0 then
		strAns = Err.Number & chr(254) & Err.Description	
	else
		strAns = 0   
	end if
	
	' Return value to hosting object	
	main =  strAns
	
		
end function

Open in new window

0
 
LVL 1

Author Comment

by:RichardRiga
ID: 35199830
Hyper, that first link i'd already looked at and tried to emulate but haven't gotten to work.
The second one only mentions that it is possible to use a relative path but shows no example for it specifically.  What am I doing wrong in MY example?
0
 
LVL 1

Author Comment

by:RichardRiga
ID: 35199834
lol ok i posted that last while you posted that second. i'll check it out now thanks
0
 
LVL 1

Author Closing Comment

by:RichardRiga
ID: 35200057
Thanks so much, that helped a ton.
0

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Welcome back!  My apologies for taking so long to write part two of this series; it's been a long time coming!  As I promised in Part 1, this article will focus on how to locate those elusive AD properties that you are searching for.  Why is this us…
If you need to start windows update installation remotely or as a scheduled task you will find this very helpful.
Video by: ITPro.TV
In this episode Don builds upon the troubleshooting techniques by demonstrating how to properly monitor a vSphere deployment to detect problems before they occur. He begins the show using tools found within the vSphere suite as ends the show demonst…
Want to learn how to record your desktop screen without having to use an outside camera. Click on this video and learn how to use the cool google extension called "Screencastify"! Step 1: Open a new google tab Step 2: Go to the left hand upper corn…
Suggested Courses

656 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question