• 通过windows计划任务和Dos批处理备份文件


    目的:

    1.计划每天每半小时备份1次,每天8点开始,执行12小时,20点结束。

    2.定期删除历史备份文件,由于每天有多个时间段备份,删除前只保留当天最后一个备份。

    说明:

    由于删除的操作只有每天第一次执行时才真正起作用,可将以下命令拆分成两个计划任务分别执行,当然也可一起执行。可具体根据执行的效率定夺。

    实施:

    1.将以下代码保存为back.bat,修改源文件路径和备份目录

    @echo off
    rem 备份指定目录下的文件
    set "Ymd=%date:~,4%-%date:~5,2%-%date:~8,2%"
    set "Sfm=%time:~,2%%time:~3,2%"
    rem 备份后的路径为C:ackup2017-09-071430.bak。
    echo f | xcopy "源文件路径" "C:ackup\%Ymd%\%Sfm%.bak" >nul 2>nul
    
    rem 删除指定路径下指定天数之前(以文件名中包含的日期字符串为准比如:2009-12-25)的文件。
    rem 指定待删除文件的存放路径
    set SrcDir=C:ackup
    rem 指定天数
    set DaysAgo=5
    >>"%temp%/DstDate.vbs" echo LastDate=date()-%DaysAgo%
    >>"%temp%/DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("0" ^& month(LastDate),2) ^& right("0" ^& day(LastDate),2)
    >>"%temp%/DstDate.vbs" echo wscript.echo FmtDate
    for /f %%a in ('cscript /nologo "%temp%/DstDate.vbs"') do (
        set "DstDate=%%a"
    )
    set DstDate=%DstDate:~0,4%-%DstDate:~4,2%-%DstDate:~6,2%
    setlocal enabledelayedexpansion
    
    for /f "delims=" %%a in ('dir /b/s/ad "%SrcDir%"') do (
        set "FileDate=%%~na"
        if "!FileDate!" leq "%DstDate%" (
            if exist "%%a" (
                rem 删除之前将最后一个文件备份到历史文件夹中
                move "%%a2000.bak" "C:ackuphistory!FileDate!.bak"
                rd /s /q "%%a"
            )
        )
    )
    
    
    endlocal
    
    :: exit

     2.设置windows计划任务,具体可参考http://blog.csdn.net/woshixuye/article/details/18050769

  • 相关阅读:
    CSS 两个行内块元素,宽度相加刚好等于父盒子容器的元素,但第二个元素掉在第二行解决办法
    js 自定义获得类class和获得id
    学习笔记:BSGS(拔山盖世?)算法
    解题报告: luogu P1040
    解题报告:SP18155 ABSP1
    解题报告:luogu P1099
    Thussat 游记
    解题报告:luogu P2220
    学习笔记:卢卡斯定理(并没有学会)
    从线性筛到欧拉函数,你十有八九能懂吧!
  • 原文地址:https://www.cnblogs.com/huzhenchao/p/7491016.html
Copyright © 2020-2023  润新知