Solved

VBScript to capture files < 1KB

Posted on 2009-04-07
2
348 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

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

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

This article is meant to give a basic understanding of how to use R Sweave as a way to merge LaTeX and R code seamlessly into one presentable document.
In threads here at EE, each comment has a unique Identifier (ID). It is easy to get the full path for an ID via the right-click context menu. However, we often want to post a short link within a thread rather than the full link. This article shows a…
Learn the basics of strings in Python: declaration, operations, indices, and slicing. Strings are declared with quotations; for example: s = "string": Strings are immutable.: Strings may be concatenated or multiplied using the addition and multiplic…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…

821 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