gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 03:16:21 27 4
gpt4 key购买 nike

我正在尝试设计这个脚本,它应该用作许多用户的登录脚本的一部分。这个脚本基本上应该采用源文件夹和目标文件夹,因为基本上只是确保目标文件夹与源文件夹具有完全相同的内容。但仅当源文件的修改日期戳比目标文件更新时才复制。

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

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 的略微修改的示例:

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

关于Vbscript - 如果比目标文件新,则比较并复制文件夹中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2832602/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com