网上找的脚本都不符合自己要求只能自己造轮子了。
第一个只能打包整个需要备份的目录为一个rar文件
@echo off rem 设置RAR命令行路径: rem by cert.run set rar="C:\Program Files\WinRAR\WinRAR.exe" rem 设置备份文件路径 set backDir="D:\back" rem 设置需要备份的文件夹 set fileDir="D:\test\" ::以下内容午无需修改 rem 判断不足10点加0 并用for来重写数字,防止文件名有空格 if "%time:~0,1%"==" " set "time=0%time:~1%" for /f "tokens=*" %%a in ('time/t') do set now=%%a rem 取日期 set ymd=%date:~0,4%%date:~5,2%%date:~8,2% rem 取时间 set hms=%now:~0,2%%now:~3%%time:~3,0% rem 设置文件名为年月日时分 set dt=%ymd%%hms% rem 开始打包 %rar% a -r -ed -ep1 -ibck -inul -m1 %backDir%\%dt%.zip %fileDir%
效果:
第二个可以把指定目录下的目录分别打包独立的rar
@echo off rem 设置RAR命令行路径: rem by cert.run set rar="C:\Program Files\WinRAR\WinRAR.exe" rem 设置备份文件路径 set backDir="D:\back\" rem 设置需要备份的文件夹 set fileDir="D:\test\" ::以下内容无需修改 pushd %fileDir% rem 取日期 set ymd=%date:~0,4%%date:~5,2%%date:~8,2% rem 判断目录是否存在否则创建以日期名称为目录 if not exist %backDir%\%ymd%\ mkdir %backDir%\%ymd%\ ::备用方法读取目录,个人喜欢用dir这种 REM for /d %%i in (*) do %rar% a -r -m5 -IBCK %backDir%%%i.rar "%%i" for /f "delims=" %%i in ('dir /ad /b *') do ( %rar% a -r -ed -ep1 -ibck -inul -m1 %backDir%\%ymd%\%%i.rar "%%i" )
效果:
修改代码中的路径,保存为.bat脚本格式,设置任务计划即可。
发表评论: