有没有一种方法可以使用vbs将驱动器中的每个文件和文件夹移动到驱动器本身的文件夹中

时间:2020-09-02 09:20:46

标签: vbscript

我需要VBS中的程序(我也可以使用批处理,但是VBS会更好),该程序可以获取USB驱动器的所有文件和文件夹,然后移入USB中的文件夹。例: 如果在我的USB驱动器中有以下目录:

E:\folder1\file.txt
E:\folder2\foder3\file3.txt
E:\file.txt

运行程序后,将具有以下路径:

E:\newfolder\folder1\file.txt
E:\newfolder\folder2\foder3\file3.txt
E:\newfolder\file.txt

我不知道是否可能。我已经使用编写了一个程序,但是只适用于文件,而不适用于文件夹:

Set FSO = CreateObject("Scripting.FileSystemObject")
ShowSubfolders FSO.GetFolder("E:/")

Sub ShowSubFolders(Folder)
set fs = CreateObject("Scripting.FileSystemObject")
For Each Subfolder in Folder.SubFolders
fs.movefolder Subfolder.Path , "E:\newfolder\"
next
End Sub
With CreateObject("Scripting.FileSystemObject")
    .MoveFile "E:\*.*", "E:\newfolder\"
End With

*在此代码中,新文件夹已存在。

1 个答案:

答案 0 :(得分:0)

您可以使用Folder对象的Move方法:

Dim sSourcePath
Dim sDestinationPath
Dim objFSO
Dim objSourceFolder
Dim objDestinationFolder
Dim objFolder

' Define paths
sSourcePath = "E:\"
sDestinationPath = "E:\newfolder\"

' Get source and destination folder
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objSourceFolder = objFSO.GetFolder(sSourcePath)
Set objDestinationFolder = objFSO.GetFolder(sDestinationPath)

For Each objFolder In objSourceFolder.Subfolders
    If objFolder Is objDestinationFolder Then
        ' Don't move destination folder
    Else
        ' Move folder to destination folder
        objFolder.Move sDestinationPath
    End If
Next