bat批处理,定时执行删除某文件
你好,其实我想做的是,要每天定时删除某个文件夹,但是这个文件夹是每天都有按日期生成的,例如:今天0520号,我要删除0518号的。明天0521号,我要删除0519号的。最好能实施跨月删除的,例如,0601号,我要删除0530号的。
麻烦各位高手帮忙,谢谢!
我理解是要删除日期前2天时建的举隐文件夹,正耐厅这些文件夹名都是以4位某月某日命名的,以下保存到这些日期文件夹同样位置,取名xx.bat
@echo off&setlocal enabledelayedexpansion
:: 下一行 ds=为要删前第几天的 (可修改,但不要大亩早于28)
set ds=2
set dy=%date:~,4%
set dm=%date:~5,2%
set dd=%date:~8,2%
set /a "feb=^!(%dy%%%4)+28"
if "%dy:~2,2%" equ "00" set/a "feb=!feb!-1+^!(%dy:~,2%%%4)"
set/a "dd-=%ds%"
if %dd% leq 0 (
set n=0
set/a dm-=1
if !dm! equ 0 set/a "dy=%dy%-1,dm=0+12"
for %%a in (31 %feb% 31 30 31 30 31 31 30 31 30 31) do (
set/a n=!n!+1
if !n! equ %dm% set/a "dd=!dd!+%%a"
)
)
if %dm% lss 10 set dm=0%dm%
if %dd% lss 10 set dd=0%dd%
if exist %dm%%dd%\. rd/s/q %dm%%dd%
修改后的bat:
@echo off
set deltime=09:00
::设置删除文件夹时间
(echo @echo off
echo set dd=c:\test
echo ::设置日期命名文件夹所在目录
echo set/a m=1%%date:~5,2%%-100
echo set/a d=1%%date:~8,2%%-100
echo if %%d%% geq 3 set/a d-=2^&goto delfdr
echo for %%%%i in ^(5 7 8 10 12^) do if %%m%%==%%%%i goto m30
echo set /a d=%%d%%+31-2
echo set /a m-=1
echo goto delfdr
echo :m30
echo set/a d=%%d%%+30-2
echo set/卖模罩a m-=1
echo goto delfdr
echo :delfdr
echo if %%m%% lss 10 set m=0%%m%%
echo if %%d%% lss 10 set d=0%%d%%
echo if exist "%%dd%%\%%m%%%%d%%" ^(
echo del "%%dd%%\%%m%%%%d%%" /f
echo ^) else ^(
echo echo 没有找到中闹"%%dd%%\%%m%%%%d%%"文件夹!^&pause
echo ^))>%windir%\delfolder.bat
at %deltime% %windir%\delfolder.bat
pause
说明:
忘记设置定时了。
没有码渗写的太繁杂,条件是今年内使用没有问题。
在第二行:set deltime=后面设置每天定时删除的时间。格式为:00:00。为24小时格式。
在第五行:set dd=后面输入日期命名文件夹所在目录。
说明:
忘记设置辩饥定时了。
没有写的太繁杂,条件是今年内使用没有问题。
在第二行:set deltime=后面设置每天定时删除的时间。格锋肆式为:00:00。为24小时格式。
在第五行:set dd=后面输入日期命名文件夹所在目录。银灶轿