Solved

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

Posted on 2011-03-23
5
2,455 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
  • 3
  • 2
5 Comments
 
LVL 6

Expert Comment

by:HyperBPP
ID: 35199785
0
 
LVL 6

Accepted Solution

by:
HyperBPP earned 500 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

What Security Threats Are You Missing?

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Welcome to part one of a multi-part tutorial series, VBScript for Windows System Administrators.  The goal of this series is to teach non-programmers how to write useful VBS code to automate their environment, and perform tasks faster, and in a more…
Hello again, all.  For those of you that have been following along, you'll know that this is my third article on this topic (though it is not Part III).  This article is sort of remedial, and probably the topic with which I should have started the s…
Illustrator's Shape Builder tool will let you combine shapes visually and interactively. This video shows the Mac version, but the tool works the same way in Windows. To follow along with this video, you can draw your own shapes or download the file…
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…

743 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

Need Help in Real-Time?

Connect with top rated Experts

13 Experts available now in Live!

Get 1:1 Help Now