I currently have a VBscript that scans a folder for files and moves the files to particular folders depending on key words in the file name.

Currently the script only moves loose files and not folders. I need it to move (or copy then delete) both folders and files based on keywords in the file/folder name.

Can someone give me a hand with this?

Below is my script so far.

Code:
'========================================================
' Script to Move Downloaded TV Shows and Movies to
' correct folders based on wildcards in File Name
'========================================================

On Error Resume Next

Dim sTorrents, sTV, sMovie, sFile, oFSO

' create the filesystem object
Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")

' Create Log File
Set objLog = oFSO.OpenTextFile("c:\temp\log.txt", 8, True)

' Set Variables
sTorrents = "D:\torrents\"
sTV = "D:\Downloads\TV Shows\"
sMovie = "D:\Downloads\Movies\"

' Scan each file in the folder
For Each sFile In oFSO.GetFolder(sTorrents).Files
' check if the file name contains TV Show Parameters
If InStr(1, sFile.Name, "hdtv", 1) OR InStr(1, sFile.Name, "s0", 1) <> 0 Then
    ' TV Show Detected - Move File
    objLog.WriteLine Now() & " - " & sFile.Name & " Detected as TV Show - Moving to " & sTV
    oFSO.MoveFile sTorrents & sFile.Name, sTV & sFile.Name
' Move all other Files to Movies Directory
Else objLog.WriteLine Now() & " - " & sFile.Name & " Detected as Movie - Moving to " & sMovie
    oFSO.MoveFile sTorrents & sFile.Name, sMovie & sFile.Name
End If

Next

If sTorrents.File.Count = 0 And sTorrents.SubFolders.Count = 0 Then
    objLog.WriteLine Now() & " - There is nothing left to Process..."
    objLog.Close
End If
As I mentioned it only picks up files only and not folders. I need it to do both if that's possible.

So for example. I have a folder where utorrent dumps all the completed downloads (D:\torrents). I also have two directories that need to be used D:\Downloads\TV Shows\ and D:\Downloads\Movies\".
Lets see if we can make the script search the torrents folder - if it finds any folders move them to the correct directory (by using the keywords hdtv or s0). If it finds any files do the same.

Example:
D:\Torrents has the following files -
How.I.Met.Your.Mother.S08E01.x264.hdtv - This is a folder (Move to TV Shows)
New.Girl.S02E01.x264.hdtv.mp4 - This is a TV Show (Move to TV Shows)
Rock.of.Ages.720p.x264.RELEASE - This is a Folder (Move to Movies)
Arbitrage.DVD-R.RELEASE.avi - This is a Movie (Move to Movies)

I want the script to pick up files and entire folders (including and sub folders) and move the files and folders to the correct locations.



EDIT: I resolved the issue I was having and my script now picks up all files and folders from a location and moves them to the correct locations depending on key words in the file name.

If anyone want's to know how I solved it read on.

At the end of my script, before the "If sTorrent.File.Count =0" section I added the following:-

Code:
' Scan each folder
For Each sFolder In oFSO.GetFolder(sTorrents).SubFolders
' check if the folder name contains TV Show Parameters
If InStr(1, sFolder.Name, "hdtv", 1) OR InStr(1, sFolder.Name, "s0", 1) <> 0 Then
    ' TV Show Folder Detected - Move File
    objLog.WriteLine Now() & " - " & sFolder.Name & " Detected as TV Show Folder - Moving to " & sTV
    oFSO.MoveFolder sTorrents & sFolder.Name, sTV & sFolder.Name
' Move all other Files to Movies Directory
Else objLog.WriteLine Now() & " - " & sFolder.Name & " Detected as Movie Folder - Moving to " & sMovie
    oFSO.MoveFolder sTorrents & sFolder.Name, sMovie & sFolder.Name
End If
Tested and this works perfectly!