Solved

Copy files based on file name and date created with VBS

Posted on 2008-06-15
5
1,038 Views
Last Modified: 2010-04-21
Hi

I'm very new to VBS but slowly getting to grips with it.
I'm trying to copy file from one folder to another based on the file name and the date the file was created.
I need to copy any file in c:\folder_a to c:\folder_b which has the file extention of .cvs, which was created after a certain date,and has a file name which begins  a certain string of characters.

An example of the file name is CMA910001_BA_20080604_101509.CSV
Only .CSV files that begin with CMA910001 created after a certain date need to be copied.

Could somebody please show me an example of this code or point me in the direction of a good web resource that will

thanks
0
Comment
Question by:Hurel
  • 3
  • 2
5 Comments
 
LVL 3

Expert Comment

by:nds_rahulmistry
ID: 21792415
RUN THE FOLLOWING CODE

CHANGE SOURCE AND TARTET DIRECOTORY PATH IN YOUR CODE.

DO NOT FORGET TO USE REFERENCE, AS DISCRIBED IN CODE

REGARDS,

RAHUL

Private Sub A()

    'You must install a refernce to library:  Microsoft Scripting Runtime

    'IN EXCEL'S VISUAL BASIC EDITOR DO FOLLOWING :

    'CLICK TOOLS - CHOOSE REFERENCE - SELECT : MICROSOFT SCRIPTING RUNTIME - OK
 

    Dim fso As New FileSystemObject 'FILE SYSTEM OBJECT

    Dim aFile As File               'HANDLE FOR FSO FILE OBJECT

    Dim aPath As String

    Dim bPath As String

    Dim aName As String

    Dim aBeginWith As String

    Dim aDate As Date
 

    aPath = "C:\Temp\"              'SOURCE PATH

    bPath = "C:\Temp\1\"            'DESTINATION PATH"

    

    aBeginWith = "CM001"            'FILE BEGINS WITH

    aDate = CDate("01-JAN-2008")    'FILES CREATED AFTER THIS DATE

    

    aName = Dir(aPath)

    Do While Not aName = ""

        If Left(aName, Len(aBeginWith)) = aBeginWith And Right(aName, 4) = ".CSV" Then

            Set aFile = fso.GetFile(aPath & aName)

            If aFile.DateCreated > aDate Then

                FileCopy aPath & aName, bPath & aName

            End If

            Set aFile = Nothing

        End If

        aName = Dir

    Loop

End Sub

Open in new window

0
 
LVL 3

Accepted Solution

by:
nds_rahulmistry earned 250 total points
ID: 21792633
I AM SORRY

I GAVE YOU VBA CODE INSTEAD OF VBS CODE.

FOLLOWING IS THE VBS CODE TO GET THE FUNCTIONALITY


    'DECLARE FOLLOWING VARIABLES
 

    bPath = "C:\Temp\1\"            		'DESTINATION PATH

    aBeginWith = "CM001"            		'FILE BEGINS WITH

    aDate = CDate("01-JAN-2008")    		'FILES CREATED AFTER THIS DATE
 

    'CREATE FILESYSTEM OBJECT

    Set fso = CreateObject("Scripting.FileSystemObject")
 

    'SET THE SOURCE PATH

    Set aPath = fso.GetFolder("C:\Temp")	'SOURCE PATH
 

    'SEARCH THE FILES WITH GIVEN CRITERIA AND COPY THEM TO DESTINATION PATH

    For Each file In aPath.Files

    	If RIGHT(file.Name, 4) = ".CSV" and Left(file.Name, Len(aBeginWith)) = aBeginWith and file.DateCreated > aDate Then

		file.Copy bPath & file.name

	End If

    Next

Open in new window

0
 

Author Comment

by:Hurel
ID: 21792650
thanks for this.

I'm getting an error
line 6
char 13
error Expected end of statement
code 800a0401
source M$ VBScript compilation error
0
 

Author Comment

by:Hurel
ID: 21792797
I've just tried your VBS code ;-)

Works a treat.

Thanks for your help
0
 

Author Closing Comment

by:Hurel
ID: 31467480
thanks
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Script to copy or move mouse-selected collection of files plus targets referenced by shortcuts (.lnk) The purpose of this article is to help illuminate the real challenges and options available (where they may exist) for utilizing simple scriptin…
Introduction During my participation as a VBScript contributor at Experts Exchange, one of the most common questions I come across is this: "I have a script that runs against only one computer. How can I make it run against a list of computers in …
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.
In this video I am going to show you how to back up and restore Office 365 mailboxes using CodeTwo Backup for Office 365. Learn more about the tool used in this video here: http://www.codetwo.com/backup-for-office-365/ (http://www.codetwo.com/ba…

910 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

22 Experts available now in Live!

Get 1:1 Help Now