【问题标题】:Copy ONLY recent by DateLastModified file over VbScript通过 VbScript 仅复制最近的 DateLastModified 文件
【发布时间】:2015-04-10 16:05:55
【问题描述】:

VbScript 的新功能,因此请尽可能包含所有行。
我有 源文件夹 C:\s\ 包含名称为 et_v01.txt、et_v02.txt 等的文件。目标文件夹 C:\d\ 我只希望将最新的文件从 S 复制到 D,即 et_v02,因为我们将使用 DateLastModified。

目的地的奖励仅保留最新的文件,如果它下次有新版本进来时运行。提前致谢,我已经搜索过,但其他文件的条件低于标准等。

Option Explicit
Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objSTR, objEND, objTYP, objEXT, objKEY, objFILE
Dim Folder, SubFolder

objSTR = "C:\s\"
objEND = "C:\d\"

For Each objFILE in objFSO.GetFolder(objSTR).Files
 If objFILE.DateLastModified > DateAdd("d",-4,now) then
     objFILE.Copy objEND
 End If
Next

【问题讨论】:

  • 不,Stack Overflow 不是代码编写服务。请展示您尝试过的方法,我们或许可以帮助您解决特定问题。否则,此问题将被关闭。
  • 请在您的问题中输入代码,而不是在评论中。
  • 我继续对问题进行了编辑。对此感到抱歉。

标签: file vbscript copy last-modified


【解决方案1】:

这里试试这个版本:

Option Explicit
Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim strSource, strDestination

strSource = "C:\s\"
strDestination = "C:\d\"
Dim objFile, objOldestFileSoFar

For Each objFile in objFSO.GetFolder(strSource).Files
    If Not IsEmpty(objOldestFileSoFar) Then
        If objFile.DateLastModified > objOldestFileSoFar.DateLastModified Then
            Set objOldestFileSoFar = objFile
        End If
    Else 'This is the first loop, i.e. we have no previous "last mod" to compare against.
        Set objOldestFileSoFar = objFile
    End If
Next

objOldestFileSoFar.Copy strDestination

另外,我已经对您的代码进行了一些清理,以摆脱未使用的声明并对变量应用更好的命名。如果您愿意,可以将这些作为建议,但请记住,遵守约定很重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-30
    • 2011-01-29
    • 2017-01-06
    • 2020-12-02
    • 1970-01-01
    • 2013-09-30
    • 2023-04-02
    相关资源
    最近更新 更多