vbs復(fù)制文件夾的實(shí)現(xiàn)代碼

字號(hào):


    這篇文章主要介紹了vbs復(fù)制文件夾的實(shí)現(xiàn)代碼.
    需要實(shí)現(xiàn)一個(gè)復(fù)制文件夾的功能,網(wǎng)上找到相關(guān)代碼,并做了改進(jìn),vbs腳本如下
    代碼如下:
    Dim fso, CopyCount
    Set fso = CreateObject("Scripting.FileSystemObject")
    CopyCount = CopyCount + XCopy(fso, ".\1", ".\2", True)
    MsgBox "拷貝了" & CopyCount & "個(gè)文件!"
    '********************************************************************
    '* Function :     XCopy
    '*
    '* Purpose:  復(fù)制文件和目錄樹(shù)。
    '*
    '* Input:    fso            FileSystemObject 對(duì)象實(shí)例
    '*           source         指定要復(fù)制的文件。
    '*           destination    指定新文件的位置和/或名稱(chēng)。
    '*           overwrite      是否覆蓋已存在文件。 Ture 覆蓋, False 跳過(guò)
    '*
    '* Output:   返回復(fù)制的文件個(gè)數(shù)
    '*
    '********************************************************************
    Function XCopy(fso, source, destination, overwrite)
        Dim s, d, f, l, CopyCount
        Set s = fso.GetFolder(source)
        If Not fso.FolderExists(destination) Then
            fso.CreateFolder destination
        End If
        Set d = fso.GetFolder(destination)
        CopyCount = 0
        For Each f In s.Files
            l = d.Path & "\" & f.Name
            If Not fso.FileExists(l) Or overwrite Then
                If fso.FileExists(l) Then
                    fso.DeleteFile l, True
                End If
                f.Copy l, True
                CopyCount = CopyCount + 1
            End If
        Next
        For Each f In s.SubFolders
            CopyCount = CopyCount + XCopy(fso, f.Path, d.Path & "\" & f.Name, overwrite)
        Next
        XCopy = CopyCount
    End Function
    在腳本文件路徑建立一個(gè)文件夾,取名1,放入兩個(gè)文件,運(yùn)行程序結(jié)果如下
    名單
    vbs復(fù)制文件的代碼:
    代碼如下:
    [code]
    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
    set fn2=fso.GetFile("c:\index2.htm")
    flsize2=fn2.size
    fldate2=fn2.datelastmodified
    set fn=fso.GetFile("c:\index.htm")
    flsize1=fn.size
    fldate1=fn.datelastmodified
    If fso.FileExists("c:\index2.htm") and flsize2>50000 and fldate2>fldate1 Then
    fso.getfile("c:\index2.htm").copy("c:\index.htm")
    if err.number=0 then WriteHistory "成功"&now(),"log.txt"
    end if
    Sub WriteHistory(hisChars, path)
    Const ForReading = 1, ForAppending = 8
    Dim fso, f
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.OpenTextFile(path, ForAppending, True)
    f.WriteLine hisChars
    f.Close
    End Sub
    [/code]