vbs复制文件夹的实现代码

时间:2021-05-22

需要实现一个复制文件夹的功能,网上找到相关代码,并做了改进,vbs脚本如下

复制代码 代码如下:
Dim fso, CopyCount
Set fso = CreateObject("Scripting.FileSystemObject")

CopyCount = CopyCount + XCopy(fso, ".\1", ".\2", True)
MsgBox "拷贝了" & CopyCount & "个文件!"

'********************************************************************
'* Function : XCopy
'*
'* Purpose: 复制文件和目录树。
'*
'* Input: fso FileSystemObject 对象实例
'* source 指定要复制的文件。
'* destination 指定新文件的位置和/或名称。
'* overwrite 是否覆盖已存在文件。 Ture 覆盖, False 跳过
'*
'* Output: 返回复制的文件个数
'*
'********************************************************************
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

在脚本文件路径建立一个文件夹,取名1,放入两个文件,运行程序结果如下



vbs复制文件的代码:

复制代码 代码如下:
[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]

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章