批处理自动备份文件并且压缩以及自动删除旧文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
批处理自动备份文件并且压缩以及自动删除旧文件
首先计算机要安装Winrar,我是默认安装的,安装路径就是c:\Program Files\winrar\
开始备份吧。
比如要备份D:\WEB这个文件夹到F:\bak文件夹下面,
命令如下
start c:\"Program Files"\winrar\rar a -k -r -s -m1 -agYYYYMMDD-{bak}-NN F:\BAK\ D:\WEB\
就这一条命令就能搞定了,解释下这条命令,a是添加文件到压缩包,-k是锁定压缩包,-s 是转换文件为解压缩文件,-m1是压缩的标准,就是快速压缩,标准压缩,最好压缩......,-ag是指定生成的文件名,按照我的设置生成的文件名为20140416-bak-02.rar,生成以日期命名的压缩文件,F:\BAK\是生成压缩包存放路径,D:\WEB\是压缩目标。详细的压缩参数可在命令行输入c:\"Program Files"\winrar\rar /?或者进入c:\"Program Files"\winrar\ 目录,里面有个使用帮助.chm的文件。
如果生成的备份文件需要覆盖上次生成的文件,那命令就更简单了。
命令如下
start c:\"Program Files"\winrar\rar a -k -r -s -m1 F:\BAK\每日备份.rar D:\WEB\
这条命令我不解释了,参照上面的应该能够理解。
下面是删除旧的备份文件。
由于我硬盘只有100G,每天大概备份文件是10G,所以我是设置为每周星期天删除7天前的备份文件。
命令如下:
set deltime=date:~0,10%
forfiles.exe /p E:\ /s /m *.rar /d -7 /c "cmd /c del/s @path >>D:\log\deltime%.txt"
set deltime=date:~0,10%这句是取一个当前时间的变量,forfiles.exe是系统文件,查找文件的。/P是定义查找的路径
E:\是定义查找路径E盘下面
/S是定义查找范围包括子目录
/M *.rar 定义查找*.rar的文件
/D 是当前时间
-7 早于或者等于当前时间减7天,也就是7天前
/C 是调用命令行CMD.EXE的命令
"cmd /c del /s @path >>D:\log\deltime%.txt" 这个是删除查找到的文件,并且把删除文件的文件名导出到
D:\log\deltime%.txt这个txt文档
deltime%是系统变量,如果当前时间是20140416,那么生成的文件就是D:\log\20140416.txt,其实导出这个列表只是为了方便查看删除了那些东西
把两个批处理保存为bak.bat 和del.bat,前面是备份的,后面是删除旧的备份文件。然后利用任务计划设置运行的时间,按照我的需要,我设置是
每日01:30运行bak.bat
每周日23:00运行del.bat