我们日常办公会在同一个目录下建立很多目录或文件,为了防止丢失或有些文件修改后又想再次使用原来的文件,故需每天对文件进行备份,以下脚本利用windows自带的任务计划运行批处理脚本,每天备份一次,保留若干天,并删除指定天数以前的备份文件。

使用方法:
将以下代码用记事粘贴保存为 "beifenwenjian.bat" 。
并修改其中的第6行中的 set sou_dir="D:\我的文档" 为你的源文件目录。
修改其中的第7行中的 set obj_dir="E:\文件备份"为你的备份目录(需先在电脑里新建一个目录,目录名自己随便定义,并跟脚本中的第4行7行中的目录名保持一致)。
第8行中的60为指定多少天前的备份要删除。
beifenwenjian.bat保存在你的备份目录里,如这里的 E:\文件备份。
然后复制 第4行 rem后的代码。按键盘中的win图标+R,打开运行界面,粘贴代码后回车以添加自动任务计划(其中的时间可以自己修改)。
转载请保留出处,谢谢!

@echo off
color 0D
MODE con: COLS=71 LINES=25
rem schtasks /create /tn "beifenwenjian.bat" /tr E:\文档备份\beifenwenjian.bat /sc daily /st 16:59:00 /RU SYSTEM
title 办公文件自动备份脚本(任务计划)--作者:小雨
set sou_dir="D:\我的文档"
set obj_dir="E:\文件备份"
set expireddays=60
if exist %obj_dir%\%date:~0,4%-%date:~5,2%-%date:~8,2% echo %date:~0,10%数据已经备份过-退出备份程序 >> %obj_dir%\backup.log  && exit/b
md %obj_dir%\%date:~0,4%-%date:~5,2%-%date:~8,2%
xcopy /e /c /h /y %sou_dir% %obj_dir%\%date:~0,4%-%date:~5,2%-%date:~8,2%
echo %date% %time% %date:~0,4%-%date:~5,2%-%date:~8,2% 备份完成 >> %obj_dir%\backup.log

rem 删除指定天数之前的备份
@echo off & setlocal enabledelayedexpansion
call :GetDate y m d
call :DateToDays %y% %m% %d% days1
@for /f "tokens=1-3 delims=-" %%a in ('dir /b/ad') do (
  call :DateToDays %%a %%b %%c days2
  set/a days=days1-days2
  if !days! GEQ %expireddays% rd /q /s "%%~fa-%%b-%%c"
)
endlocal
exit /b

:DateToDays %yy% %mm% %dd% days
setlocal ENABLEEXTENSIONS
set yy=%1&set mm=%2&set dd=%3
if 1%yy% LSS 200 if 1%yy% LSS 170 (set yy=20%yy%) else (set yy=19%yy%)
set /a dd=100%dd%%%100,mm=100%mm%%%100
set /a z=14-mm,z/=12,y=yy+4800-z,m=mm+12*z-3,j=153*m+2
set /a j=j/5+dd+y*365+y/4-y/100+y/400-2472633
endlocal&set %4=%j%&goto :EOF
:GetDate yyyy mm dd
setlocal ENABLEEXTENSIONS
set "first="
for /f "tokens=1-3 delims=.-/ " %%a in ('date/t') do (
if not defined first set first=1&set yy=%%a&set mm=%%b&set dd=%%c)
endlocal&set %1=%yy%&set %2=%mm%&set %3=%dd%&goto :EOF


附脚本源文件:
下载文件 (已下载 104 次)
电脑类 | 评论(0) | 引用(0) | 阅读(95)