VBScript для перемещения файлов с определенным расширением
В настоящее время у меня есть VBscript, который сканирует папку на наличие файлов и перемещает файлы в определенные папки в зависимости от ключевых слов в имени файла.
В настоящее время мне нужно, чтобы скрипт сканировал только один уровень (т.е. не сканировал рекурсивно), и мне также нужно выполнить поиск по всем подпапкам.
Может кто-нибудь помочь мне с этим?
РЕДАКТИРОВАТЬ: С момента написания этого сценария я понял, что мне нужно, чтобы он перемещал файлы только с определенными расширениями из определенной папки и подпапок в другие каталоги на основе имени файла. Например, мне нужны только файлы .mp4 и .avi для перемещения.
Может ли кто-нибудь помочь мне с этим, пожалуйста? Я пробовал несколько вещей, но все еще не могу заставить работать рекурсивное сканирование и перемещение или перемещение, специфичное для расширения.
Ниже мой текущий сценарий.
'========================================================
' 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 = "C:\Temp\torrents\"
sTV = "C:\Temp\TV Shows\"
sMovie = "C:\Temp\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