脚本说明:为避免手动清理磁盘空间,保留当前7天数据库备份文件.数据库备份文件格式为csmdbbakXXXXXXXX.rar
脚本描述:通过脚本判断日期相对麻烦困难,此处将日期作为整型数据处理。不做加减判断,而是递归循环判断最小日期的文 件(即非最近7天内的文件),然后将此文件删除。
脚本代码:
@echo off
setlocal enabledelayedexpansion
set filecount=0
cd /d E:/dbbak
::获取文件数量
for /r %%i in (*.rar) do (
set /a filecount+=1
rem echo %%~ni
)
::如果不超过7个,不做任何处理
:judgefilecount
echo %filecount%
set min=99999999
if %filecount% leq 7 goto eof
::如果大于7,则删除扩展文件名中日期最小的文件
::获取文件名
for /l %%i in (0,1,6) do set a%%i=%%i
set step=0
cd /d d:/test/temp
for /r %%i in (*.rar) do (
set a!step!=%%~ni
set /a step+=1
)
rem echo %a1%
rem echo %a1:~-4%
::获取最小值,没用使用for循环
:getminfile
if %a0:~-8% leq %min% set min=%a0:~-8%
if %a1:~-8% leq %min% set min=%a1:~-8%
if %a2:~-8% leq %min% set min=%a2:~-8%
if %a3:~-8% leq %min% set min=%a3:~-8%
if %a4:~-8% leq %min% set min=%a4:~-8%
if %a5:~-8% leq %min% set min=%a5:~-8%
if %a6:~-8% leq %min% set min=%a6:~-8%
:delminfile
echo %min%
del csmdbbak%min%.rar
set /a filecount-=1
goto judgefilecount
endlocal
:eof
脚本描述:通过脚本判断日期相对麻烦困难,此处将日期作为整型数据处理。不做加减判断,而是递归循环判断最小日期的文 件(即非最近7天内的文件),然后将此文件删除。
脚本代码:
@echo off
setlocal enabledelayedexpansion
set filecount=0
cd /d E:/dbbak
::获取文件数量
for /r %%i in (*.rar) do (
set /a filecount+=1
rem echo %%~ni
)
::如果不超过7个,不做任何处理
:judgefilecount
echo %filecount%
set min=99999999
if %filecount% leq 7 goto eof
::如果大于7,则删除扩展文件名中日期最小的文件
::获取文件名
for /l %%i in (0,1,6) do set a%%i=%%i
set step=0
cd /d d:/test/temp
for /r %%i in (*.rar) do (
set a!step!=%%~ni
set /a step+=1
)
rem echo %a1%
rem echo %a1:~-4%
::获取最小值,没用使用for循环
:getminfile
if %a0:~-8% leq %min% set min=%a0:~-8%
if %a1:~-8% leq %min% set min=%a1:~-8%
if %a2:~-8% leq %min% set min=%a2:~-8%
if %a3:~-8% leq %min% set min=%a3:~-8%
if %a4:~-8% leq %min% set min=%a4:~-8%
if %a5:~-8% leq %min% set min=%a5:~-8%
if %a6:~-8% leq %min% set min=%a6:~-8%
:delminfile
echo %min%
del csmdbbak%min%.rar
set /a filecount-=1
goto judgefilecount
endlocal
:eof