VBScript to capture files < 1KB

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

cbonesAsked:
Who is Participating?
 
AlvinLim84Connect With a Mentor Commented:
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
 
cbonesAuthor Commented:
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
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.