|
批处理删除N天前的文件及文件夹
- @echo off
- set/a n=0 &rem 可调整 不要超过一个月的天数
- set/a y=%date:~,4%,m=1%date:~5,2%-100,d=1%date:~8,2%-100
- set/a d-=n,"1/(d>>31)" 2>nul&&(
- set/a m-=1,d+=31,y-=!m,m+=!m*12
- set/a "d-=!(m-2)*(3-!(y&3))+!(m-4)+!(m-6)+!(m-9)+!(m-11)")
- set/a m+=100,d+=100
- set ymd=%y%-%m:~1%-%d:~1%
- echo 删除%n%天前文件
- cd/d "%~dp0"
- for /r %%i in (*.txt)do if /i not "%%i"=="%~f0" (
- if "%%~ti" lss "%ymd%y" (
- echo %%~ti %%i
- del "%%i"
- ))
- echo 删除空文件夹
- for /f "delims=" %%i in ('dir/b/ad/s^|sort/r')do (
- rd "%%i" 2>nul&&echo %%i
- )
- pause
复制代码
批处理删除N天前文件 不能删除子文件夹
- @echo off
- ::取7天之前的日期.
- >deldata_zw.zhu.vbs echo wscript.echo dateadd("d",+1,date)
- for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo deldata_zw.zhu.vbs') do (
- set y=%%i
- set m=%%j
- set d=%%k
- )
- if %m% LSS 10 set m=0%m%
- if %d% LSS 10 set d=0%d%
- set rq=%y%-%m%-%d%
- echo 注意:即将删除 %rq% 以前建立的文件
- pause
- for /f "skip=4 delims=" %%i in ('dir/tc D:\test\log\*.txt') do call :w "%%i"
- del deldata_zw.zhu.vbs
- goto :eof
- :w
- for /f "tokens=4 delims= " %%a in (%1) do set str=%%a
- set var=%1
- set num=%var:~1,10%
- if %num% lss %rq% del /q D:\test\log\%str%
复制代码
forfiles删除N天前文件
- forfiles /p D:\test\新建文件夹 /m *.txt -d -0 /c "cmd /c del /f @path" /s
复制代码
|
|