gpt4 book ai didi

VBScript 移动具有特定扩展名的文件

转载 作者:行者123 更新时间:2023-12-02 22:47:39 25 4
gpt4 key购买 nike

我目前有一个 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

最佳答案

一些注意事项:

Sub listfolders(startfolder)
Dim fs
Dim fl1
Dim fl2

Set fs = CreateObject("Scripting.FileSystemObject")
Set fl1 = fs.GetFolder(startfolder)

For Each fl2 In fl1.SubFolders
Debug.Print fl2.Path

''process the files
ProcessFiles fl2.Path

'Recursion: lists folders for each subfolder
listfolders fl2.Path
Next
End Sub

''Code copied from question
Sub ProcessFiles(sPath)
' Scan each file in the folder
For Each sFile In oFSO.GetFolder(sPath).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
End Sub

关于VBScript 移动具有特定扩展名的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12593730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com