Vbscript 复制文件的更快方法

Vbscript 复制文件的更快方法,vbscript,Vbscript,我正在尝试使用以下脚本复制文件 Option Explicit Const ForWriting = 2 Dim objFSO Dim desfolder Dim oShell dim s desfolder = "D:\Databases" Set objFSO = CreateObject("Scripting.FileSystemObject") Recurse objFSO.GetFolder("D:\Databases\Images") Sub Recurse(objFolde

我正在尝试使用以下脚本复制文件

Option Explicit

Const ForWriting = 2
Dim objFSO
Dim desfolder
Dim oShell
dim s

desfolder = "D:\Databases"
Set objFSO = CreateObject("Scripting.FileSystemObject")

Recurse objFSO.GetFolder("D:\Databases\Images")

Sub Recurse(objFolder)
    Dim objFile, objSubFolder

    For Each objFile In objFolder.Files
        If LCase(objFSO.GetExtensionName(objFile.Name)) = "tif" Then
            s = Right(objFile.Name, 10)
            S = Left(s, 1)
            If Left(s, 1) = "C" Then
                Set oShell = WScript.CreateObject("WScript.Shell")
                oShell.Run "xcopy.exe " & objFile & " " & desfolder & " /R /Y", _
                    0, True
            End If
        End If
    Next
    For Each objSubFolder In objFolder.SubFolders
        Recurse objSubFolder
    Next
End Sub
我试图做的是检查文件夹和子文件夹中的文件。如果文件为tif,则检查其在特定位置是否包含所需的字母“C”。并使用
xcopy
复制文件

它工作正常,但速度很慢。 有没有更快的方法


编辑:我想要的是在文件夹及其子文件夹中查找
c*.tif

那么不要使用
xcopy
。按自己的方式操作会在每次复制文件时生成一个新进程。只需使用file对象的方法并完成它

子递归(objFolder)
Dim objFile,objSubFolder
对于objFolder.Files中的每个objFile
如果LCase(objFSO.GetExtensionName(objFile))=“tif”,则
如果LCase(左(objFile.Name,1)=“c”,则
objFile.Copy desfolder&“\”
如果结束
如果结束
下一个
对于objFolder.SubFolders中的每个objSubFolder
递归objSubFolder
下一个
端接头
请注意,您的目标路径需要一个尾随反斜杠,因为它是一个文件夹(如果没有它,您将得到一个)。否则,您需要指定包含文件名的目标路径,例如:

objFile.Copy objFSO.BuildPath(desfolder,objFile.Name)