我正在尝试设计这个脚本,该脚本应该用作很多用户的登录脚本的一部分。该脚本基本上应该采用源文件夹和目标文件夹,因为基本上只是确保目标文件夹具有与源文件夹完全相同的内容。但仅当源文件的修改日期标记比目标文件新时才进行复制。
我一直在思考这个基本的伪代码,只是想确保它基本上是有效和可靠的。
Dim strSourceFolder, strDestFolder
strSourceFolder = "C:\Users\User\SourceFolder\"
strDestFolder = "C:\Users\User\DestFolder\"
For each file in StrSourceFolder
ReplaceIfNewer (file, strDestFolder)
Next
Sub ReplaceIfNewer (SourceFile, DestFolder)
Dim DateModifiedSourceFile, DateModifiedDestFile
DateModifiedSourceFile = SourceFile.DateModified()
DateModifiedDestFile = DestFolder & "\" & SourceFile.DateModified()
If DateModifiedSourceFile < DateModifiedDestFile
Copy SourceFile to SourceFolder
End if
End Sub
这行得通吗?我不太确定如何做到这一点,但我可能会花一整天的时间来弄清楚。但这里的人通常都非常聪明,在你的帮助下,花费的时间会少得多:)
你的算法看起来不错。实际上,您需要使用 FileSystemObject 获取文件,并检索它们各自的 DateLastModified 属性。您可以对两个日期执行 DateDiff 来比较哪个日期较早。
稍微修改过的例子来自DevGuru http://www.devguru.com:
Dim filesys,demofile, date1, date2
Set filesys = CreateObject("Scripting.FileSystemObject")
Set demofile = filesys.GetFile("filename1")
date1 = demofile.DateLastModified
demofile = filesys.GetFile("filename2")
date2 = demofile.DateLastModified
If DateDiff("d", date1, date2) > 0 Then
'date2 is more recent than date1, comparison by "day" ' ** Improvement **
End If
编辑:URL 拼写错误。
改进在评论中,“date1”和“date2”已交换。
MSDN 文档说:
如果 date1 引用的时间晚于 date2,则 DateDiff 函数返回负数。http://msdn.microsoft.com/en-us/library/xhtyw595(v=vs.84).aspx http://msdn.microsoft.com/en-us/library/xhtyw595(v=vs.84).aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)