当前位置 博文首页 > vbs实现只复制比目标文件更新的文件

    vbs实现只复制比目标文件更新的文件

    作者:admin 时间:2021-02-04 21:17

    因为网站需要频繁的更新首页,有时候使用cdn经常导致首页正在生成内容的时候同步数据(可能是冲突,经常导致首页是空的),这就想了先生成一个不是首页的index2.htm然后再复制一遍为index.htm,这样index2的频繁读写也没问题了。所以先判断index2.htm不是空的时候才复制,而且必须是比index.htm更新的时候才复制。这样就需要一些脚本的支持了。

    前几天写了一个(bat+xcopy实现只复制比目标文件更新的文件)还是出现为空的情况,这里特加些功能,参考很多网站的文章,感谢百度的结果很给力。

    先来个bat版的

    复制代码 代码如下:

    @echo off
    ::每5分钟复制以下首页
    for /f %%i in ('dir /b c:\index2.htm') do (
    set indexdx=%%~zi
    )
    if %indexdx% gtr 5120 (
    echo y | xcopy c:\index2.htm /d /r /k c:\index.htm
    )



    其中for /f %%i in ('dir /b c:\index2.htm') do (
    set indexdx=%%~zi
    )
    是bat中获取index2.htm文件大小的。

    然后通过if %indexdx% gtr 5120 (
    实现判断是不是大于5120个字节

    主要就是下面这个代码了功能更强,也比较简单

    复制代码 代码如下:

    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
    set fn2=fso.GetFile("c:\index2.htm")
    flsize2=fn2.size
    fldate2=fn2.datelastmodified
    set fn=fso.GetFile("c:\index.htm")
    flsize1=fn.size
    fldate1=fn.datelastmodified
    If fso.FileExists("c:\index2.htm") and flsize2>50000 and fldate2>fldate1 Then
    fso.getfile("c:\index2.htm").copy("c:\index.htm")
    if err.number=0 then WriteHistory "成功"&now(),"log.txt"
    end if

    Sub WriteHistory(hisChars, path)
    Const ForReading = 1, ForAppending = 8
    Dim fso, f
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set f = fso.OpenTextFile(path, ForAppending, True)
    f.WriteLine hisChars
    f.Close
    End Sub


    还有日志功能,当前bat下也可以的。需要的可以自己扩展下。

    站长博客远程文章,转载请注明出处。 js
    下一篇:没有了