gpt4 book ai didi

vbscript - 比较两个不同文件夹中的两个文件并将其替换为较新的文件

转载 作者:行者123 更新时间:2023-12-03 06:34:03 25 4
gpt4 key购买 nike

使用此 VBScript 代码,我可以复制文件。如果文件存在,则不执行任何操作,如果不存在,则会复制所需的文件。

Dim Photo
SourceFolder = "C:\Photo1"
DistinationFolder = "C:\Photo2"
Set ObjPhoto = CreateObject("Scripting.FileSystemObject")

For Each Photo In ObjPhoto.GetFolder( SourceFolder).Files
If Not ObjPhoto.FileExists(ObjPhoto.BuildPath(DistinationFolder, Replace(Photo.Name, ".jpg", ".bmp"))) Then
photo.Copy ObjPhoto.BuildPath(DistinationFolder, Photo.Name), True
End If
Next

我想比较源文件是否也存在于目标文件夹中,并将其替换为新文件。

最佳答案

如果您想根据上次修改日期进行覆盖,则File对象具有您想要的属性:DateLastModified 。 (您可以检查 File 对象 here 的所有属性。)

您已经可以访问源文件对象(代码的 Photo 变量),因此您只需要获取目标的文件对象即可。

这样的事情应该有效:

Dim Photo
Dim targetFile, bmpTargetFilename, jpgTargetFilename

SourceFolder = "C:\Photo1"
DistinationFolder = "C:\Photo2"

Set ObjPhoto = CreateObject("Scripting.FileSystemObject")

For Each Photo In ObjPhoto.GetFolder(SourceFolder).Files
bmpTargetFilename = ObjPhoto.BuildPath(DistinationFolder, Replace(Photo.Name, ".jpg", ".bmp"))
jpgTargetFilename = ObjPhoto.BuildPath(DistinationFolder, Photo.Name)

If ObjPhoto.FileExists(bmpTargetFilename) Then
' Get the target file object
Set targetFile = ObjPhoto.GetFile(jpgTargetFilename)
' Now compare the last modified dates of both files
If Photo.DateLastModified > targetFile.DateLastModified Then
Photo.Copy jpgTargetFilename, True
End If
Else
Photo.Copy jpgTargetFilename, True
End If
Next

一些注意事项:

  • 您似乎正在检查 .BMP 文件是否存在,但正在复制 .JPG 文件,因此我使用两个变量将其明确化。
  • 我还假设您想要比较 JPG 文件,因为这些是正在复制的文件。

关于vbscript - 比较两个不同文件夹中的两个文件并将其替换为较新的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30530377/

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