目的:

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:\backup\2017-09-07\1430.bak。
echo f | xcopy "源文件路径" "C:\backup\%Ymd%\%Sfm%.bak" >nul 2>nul rem 删除指定路径下指定天数之前(以文件名中包含的日期字符串为准比如:2009-12-25)的文件。
rem 指定待删除文件的存放路径
set SrcDir=C:\backup\
rem 指定天数
set DaysAgo=5
>>"%temp%/DstDate.vbs" echo LastDate=date()-%DaysAgo%
>>"%temp%/DstDate.vbs" echo FmtDate=right(year(LastDate),4) ^& right("" ^& month(LastDate),2) ^& right("" ^& 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 "%%a\2000.bak" "C:\backup\history\!FileDate!.bak"
rd /s /q "%%a"
)
)
) endlocal :: exit

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

通过windows计划任务和Dos批处理备份文件的更多相关文章

  1. windows命令行(DOS批处理)添加任务计划

    自动创建每周运行一次的计划任务 创建计划任务可用at,schtasks命令,schtasks提供了很多参数 命令schtasks SCHTASKS /Create [/S system [/U use ...

  2. DOS批处理延时技术

    DOS批处理延时技术 举个例子,我们要延时5秒打开gdh.txt这个文件,可以用以下几个方法 方法一:ping  缺点:时间精度为1秒,不够精确   www.2cto.com   @echo off  ...

  3. Windows常用的一些DOS命令整理

    Windows常用的一些DOS命令整理.. MS DOS 命令大全 ---清空Dos屏幕使用命令:cls -- Dos切换当前目录到D盘:cd d: 一.基础命令 1 dir 无参数:查看当前所在目录 ...

  4. 利用DOS批处理实现定时关机操作

    10月1放假回来,寝室晚上10:30就停电了,最无法让人理解的是第二天早上8:00才来电.原来晚上电脑都是不关机的,开着WiFi一直到天亮,可是现在不行了,电脑如果一直开着第二天早上起来电脑肯定没电, ...

  5. DOS批处理不支持将UNC 路径作为当前目录的巧妙解决方案

    DOS批处理不支持将UNC 路径作为当前目录的巧妙解决方案在有些时候,需要在批处理中操作UNC目录,但批处理并不能直接对UNC目录进行操作,怎么办? 废话少说,直接上代码,打开网上邻居→整个网络→Mi ...

  6. 用DOS批处理实现FTP自动上传、下载、清理文件

    用DOS批处理实现FTP自动上传.下载.清理文件 最近好像特别的忙,好久没来写点东西了,今天写了一个利用批处理程序完成FTP自动上传.下载.清理文件的程序.赶紧 记录下来,以备日后之用.功能介绍:自动 ...

  7. DOS批处理命令判断操作系统版本、执行各版本对应语句

    DOS批处理命令判断操作系统版本.执行各版本对应语句   昨天在家里试用  netsh interface ip set address 这些命令更改上网IP.DNS.网关等,今天将那些代码拿来办公室 ...

  8. DOS批处理的字符串功能

    原文:DOS批处理的字符串功能 DOS批处理的字符串功能 批处理有着具有非常强大的字符串处理能力,其功能绝不低于C语言里面的字符串函数集.批处理中可实现的字符串处理功能有:截取字符串内容.替换字符串特 ...

  9. Windows下MYSQL自动备份批处理

    windows下MYSQL自动备份批处理 2011-05-04 09:16:45|  分类: mysql|举报|字号 订阅     按系统时间进行备份 注意mysql安装路径中如果有空格.就要把,.b ...

随机推荐

  1. I2C(smbus pmbus)和SPI分析

    2C和SPI作为两种非常常用的低速外部总线 I2C I2C是以前的飞利浦半导体制定的标准,也就是如今的NXP. I2C总线由一条数据线(SDA)和一条时钟线(SCL)组成.设备分主从,主设备提供时钟, ...

  2. nodejs創建目錄命令mkdir失敗

    Windows系統 學習nodejs創建目錄命令:mkdir var fs = require('fs'); fs.mkdir('./tmp/test',function (err) { if(err ...

  3. Swagger的坑

    swagger.pathPatterns如果是譬如/w/.*,那么如果API中以w开头的描述就会在swagger-ui中显示不出来

  4. build-helper-maven-plugin

    <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>build-helper-maven ...

  5. c++ 封装线程库 1

    1.Pthread条件变量简介 条件变量也是线程间同步一个重要的内容,如果说互斥是一个种竞争关系,那么条件变量用于协调线程之间的关系,是一种合作关系. 条件变量的应用很多,例如:BlockingQue ...

  6. JavaSE---死锁

    1.死锁: 当2个线程互相等待对方释放  同步监视器  时就会发生死锁,JVM没有监测,也没有采取任何措施来避免死锁(当出现死锁时,整个程序既不会发生任何异常,也不会有任何提示, 所有线程处于阻塞状态 ...

  7. Zookeeper的集群配置和Java测试程序 (一)

    概述 Zookeeper是Apache下的项目之一,倾向于对大型应用的协同维护管理工作.IBM则给出了IBM对ZooKeeper的认知: Zookeeper 分布式服务框架是 Apache Hadoo ...

  8. ubuntu 16.04 && google账号问题

    1.按ctrl + H 可以显示文件夹的隐藏内容 2.创建文件夹 sudo mkdir -p /usr/share/fonts/vista         创建文件用 vim filename.xxx ...

  9. python-常用模块整理

    学习背景 最近需要进行文件夹数据的批量读取,里面会用到python里面的os模块.但是对os模块又不是很熟悉,里面的函数有哪些函数?有什么用?怎么用?英语不好的每次看官方文档也比较费力,所以就想着看看 ...

  10. CAD安装失败怎样卸载CAD 2010?错误提示某些产品无法安装

    AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...