Bat批处理 文件定时备份、历史删除
功能实现: 【定时】【文件备份】 【删除历史文件数据】
适用场景:windows;文件容量不大的文件
1.bat脚本代码
- 请自行修改
配置参数
@echo off
REM UTF8编码 解决中文显示乱码
CHCP 65001
CLS
echo ******************************
echo * 脚本说明: *
echo * 适用场景:数据量不大的文件 *
echo *1.备份磁盘文件 *
echo *2.删除历史文件 *
echo ******************************
REM ****************配置参数start*******************************
REM 时间参数x y z赋值不能有空格
REM 备份数据保留x天
set x=10
REM 备份数据保留y小时
set y=0
REM 备份数据保留z分钟
set z=0
REM 备份文件原地址
set originUri=D:\test
REM 文件备份至目标地址 *强烈建议新建备份目录文件防止误删原有文件*
set target=D:\ddl\bak\test
REM ****************配置参数end*********************************
REM 主函数
goto getCurrentMills
:step1
goto getBackupMills
:step2
goto delFile
:step3
goto copyFile
:step4
echo.
echo 批处理已执行完毕!
::pause
exit
REM 备份数据
:copyFile
::net stop mysql
@xcopy "%originUri%\*.*" "%target%\%currentMills%\" /y
::net start mysql
goto step4
REM 遍历删除目录
:delFile
for /d %%i in ("%target%\*") do (
if %%~ni LSS %consumeMills% (
rd /s /q %%i
)
)
goto step3
REM 截取时间戳currentMills精确到秒
:getCurrentMills
set "$=%temp%\Spring"
>%$% Echo WScript.Echo(Math.round((new Date()).getTime()/1000))
for /f %%a in ('cscript -nologo -e:jscript %$%') do set currentMills=%%a
del /f /q %$%
goto step1
REM 备份x天y小时z分钟
:getBackupMills
set /a consumeMills=%currentMills%-%x%*24*60*60-%y%*60*60-%z%*60
goto step2
2.添加windows计划任务
- 以win10为例
1)win + r
开启任务计划程序
taskschd.msc
2)创建基本任务
3)配置触发器时间
4)配置操作脚本,选择我们写好的bat脚本
5)完成
3.成果展示
文件名是时间戳,精确到秒。
修改日期为备份时间。
参考文档:
*
如对本文存有疑问,请在下方留言或私信博主 。