bat脚本--备份n天前的文件

@echo off

::跳转到源目录

pushd d:\test

::设定n天前(此处暂定为10天前)

set dayago=10

::算出n天以前的日期并格式化为 yyyy/mm/dd

>$.vbs echo dst_date=date()-%dayago%
>>$.vbs echo date_str=right(year(dst_date),4) ^& right("0" ^& month(dst_date),2) ^& right("0" ^& day(dst_date),2)
>>$.vbs echo wscript.echo date_str
for /f %%a in ('cscript /nologo $.vbs') do set dstdate=%%a
set dstdate=%dstdate:~0,4%/%dstdate:~4,2%/%dstdate:~6,2%

::删除临时vbs脚本

del $.vbs

::跳转到:tx  执行文件挑选动作

goto :tx

::定义 :ys压缩函数,将符合条件的文件挑选后压缩备份

:ys
pushd c:\Program Files\HaoZip
set "ymd=%date:~,4%%date:~5,2%%date:~8,2%"
HaoZipC u -tzip d:\%ymd% /t.zip e:\111\*

::跳转至 :del

goto del

::定义 :del删除函数,备份后删除符合条件的源文件

:del
pushd d:\test
forfiles /d -%dstdate% /s /c "cmd /c del @path "
rd /s /q e:\111

::退出程序,关闭窗口

exit

::定义:tx函数,挑选出符合条件的文件

:tx
for /f %%i in ('forfiles /d -%dstdate% /s  /c "cmd /c echo @path"' ) do ( call :fz %%i %%i)

::跳转至 :ys 函数

goto :ys

::定义 :fz函数,执行复制操作

:fz
set url=%~p1
xcopy %~2 e:\111%url%


你可能感兴趣的:(bat脚本,备份文件)