Vbscript-如果文件比目标文件新,则比较并复制文件夹中的文件

Vbscript-如果文件比目标文件新,则比较并复制文件夹中的文件,vbscript,copy,compare,last-modified,datemodified,Vbscript,Copy,Compare,Last Modified,Datemodified,我正在尝试设计这个脚本,它应该作为许多用户登录脚本的一部分使用。这个脚本基本上应该以源文件夹和目标文件夹为基础,确保目标文件夹的内容与源文件夹的内容完全相同。但仅当源文件的datemodified戳记比目标文件新时才复制 我一直在思考这个基本的伪代码,只是试图确保它基本上是有效的和可靠的 Dim strSourceFolder, strDestFolder strSourceFolder = "C:\Users\User\SourceFolder\" strDestFolder = "C:\Us

我正在尝试设计这个脚本,它应该作为许多用户登录脚本的一部分使用。这个脚本基本上应该以源文件夹和目标文件夹为基础,确保目标文件夹的内容与源文件夹的内容完全相同。但仅当源文件的datemodified戳记比目标文件新时才复制

我一直在思考这个基本的伪代码,只是试图确保它基本上是有效的和可靠的

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
Dim strSourceFolder,strDestFolder
strSourceFolder=“C:\Users\User\SourceFolder\”
strDestFolder=“C:\Users\User\DestFolder\”
对于StrSourceFolder中的每个文件
ReplaceIfNewer(文件,strDestFolder)
下一个
子替换文件(源文件、目标文件夹)
Dim DateModifiedSourceFile,DateModifiedTestFile
DateModifiedSourceFile=SourceFile.DateModified()
DateModifiedTestFile=DestFolder&“\”&SourceFile.DateModified()
如果DateModifiedSourceFile

这样行吗?我不太确定怎么做,但我可能会花一整天的时间来弄清楚。但是这里的人通常都非常聪明,在你的帮助下,花的时间会少很多:)

你的代码看起来很合理。请注意只读文件之类的文件

您可以使用
FileSystemObject
执行实际的文件操作,只需查看:


您的算法看起来不错。实际上,您需要使用FileSystemObject获取文件,并检索它们各自的DateLastModified属性。您可以对这两个日期进行DateDiff,以比较哪个日期更早

略作修改的示例来自:

编辑:URL拼写错误


改进 在评论中,“date1”和“date2”被互换。 MSDN文件说: 如果date1引用的时间晚于date2,则DateDiff函数返回负数。

这看起来很有希望:)我要试试:)如果目标文件丢失了怎么办?
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