Solved

VBScript to capture files < 1KB

Posted on 2009-04-07
2
344 Views
Last Modified: 2012-05-06
Hi,

I have a vbscript that will scan a directory and copy files that are less than 1 kb, depending on certain criteria.  It copies those files fine but it also copies the files that are larger than 1kb.
I copied the code below.  
Any help would be appreciated.

Thank you.
strTargetFolder = "c:\test1"

strTargetFolder2 = "c:\test2"

strSourceFolder = "c:\test"

arrDataToFind = Array("test1","test2","test3")

arrDataToFind2 = Array("test4","test5","test6")

Dim FSO, oFolder, oFile

Set FSO = CreateObject("Scripting.FileSystemObject")

Const intForReading = 1

Set ofolder = FSO.GetFolder(strSourceFolder)

For Each oFile In oFolder.Files 

	Set objFile = FSO.OpenTextFile(oFile.Path, intForReading, False)

	strData = objFile.ReadAll

	objFile.Close

	Set objFile = Nothing

	If oFile.Size < 1024 Then

		' Check for the existence of any element from arrDataToFind

		boolMatch1 = False

		For Each strBit In arrDataToFind

			If Instr(LCase(strData), LCase(strBit)) > 0 Then

				boolMatch1 = True

				Exit For

			End If

		Next

		If boolMatch1 = True Then

			'Move file

			FSO.MoveFile oFile.Path, strTargetFolder

		End If

		' Check for the existence of any element from arrDataToFind2

		If boolMatch1 = False Then

			boolMatch2 = False

			For Each strBit In arrDataToFind2

				If Instr(LCase(strData), LCase(strBit)) > 0 Then

					boolMatch2 = True

					Exit For

				End If

			Next

			If boolMatch2 = True Then

				'Move file

				FSO.MoveFile oFile.Path, strTargetFolder2

			End If

		End If

		' Now check if nothing was found, delete the file

		If boolMatch1 = False And boolMatch2 = False Then

			FSO.Deletefile oFile.Path, True

		End If

	End If

Next

Set FSO = Nothing

Open in new window

0
Comment
Question by:cbones
2 Comments
 
LVL 2

Accepted Solution

by:
AlvinLim84 earned 500 total points
ID: 24087832
I think you need to add \ for folder listing at end of the path line. See below. Hope this will help to solve your problem.
strTargetFolder = "c:\test1\"

strTargetFolder2 = "c:\test2\"

strSourceFolder = "c:\test\"

arrDataToFind = Array("test1","test2","test3")

arrDataToFind2 = Array("test4","test5","test6")

Dim FSO, oFolder, oFile

Set FSO = CreateObject("Scripting.FileSystemObject")

Const intForReading = 1

Set ofolder = FSO.GetFolder(strSourceFolder)

For Each oFile In oFolder.Files 

	Set objFile = FSO.OpenTextFile(oFile.Path, intForReading, False)

	strData = objFile.ReadAll

	objFile.Close

	Set objFile = Nothing

	If oFile.Size < 1024 Then

		' Check for the existence of any element from arrDataToFind

		boolMatch1 = False

		For Each strBit In arrDataToFind

			If Instr(LCase(strData), LCase(strBit)) > 0 Then

				boolMatch1 = True

				Exit For

			End If

		Next

		If boolMatch1 = True Then

			'Move file

			FSO.MoveFile oFile.Path, strTargetFolder

		End If

		' Check for the existence of any element from arrDataToFind2

		If boolMatch1 = False Then

			boolMatch2 = False

			For Each strBit In arrDataToFind2

				If Instr(LCase(strData), LCase(strBit)) > 0 Then

					boolMatch2 = True

					Exit For

				End If

			Next

			If boolMatch2 = True Then

				'Move file

				FSO.MoveFile oFile.Path, strTargetFolder2

			End If

		End If

		' Now check if nothing was found, delete the file

		If boolMatch1 = False And boolMatch2 = False Then

			FSO.Deletefile oFile.Path, True

		End If

	End If

Next

Set FSO = Nothing

Open in new window

0
 

Author Comment

by:cbones
ID: 24088067
AlvinLim84,

I do have the \ after the folder name.  When I copied the code over I must have erased it by accident.  
Sorry about that.

0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
Not long ago I saw a question in the VB Script forum that I thought would not take much time. You can read that question (Question ID  (http://www.experts-exchange.com/Programming/Languages/Visual_Basic/VB_Script/Q_28455246.html)28455246) Here (http…
Learn the basics of while and for loops in Python.  while loops are used for testing while, or until, a condition is met: The structure of a while loop is as follows:     while <condition>:         do something         repeate: The break statement m…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

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

15 Experts available now in Live!

Get 1:1 Help Now