找回密码
 立即注册

QQ登录

只需一步,快速开始

其他系统 批处理删除N天前的文件及文件夹

0
回复
4704
查看
[ 复制链接 ]

293

主题

6

回帖

4093

积分

管理员

积分
4093
批处理删除N天前的文件及文件夹

  1. @echo off
  2. set/a n=0   &rem 可调整 不要超过一个月的天数
  3. set/a y=%date:~,4%,m=1%date:~5,2%-100,d=1%date:~8,2%-100
  4. set/a d-=n,"1/(d>>31)" 2>nul&&(
  5.     set/a m-=1,d+=31,y-=!m,m+=!m*12
  6.     set/a "d-=!(m-2)*(3-!(y&3))+!(m-4)+!(m-6)+!(m-9)+!(m-11)")
  7. set/a m+=100,d+=100
  8. set ymd=%y%-%m:~1%-%d:~1%
  9. echo 删除%n%天前文件
  10. cd/d "%~dp0"
  11. for /r %%i in (*.txt)do if /i not "%%i"=="%~f0" (
  12.     if "%%~ti" lss "%ymd%y" (
  13.         echo %%~ti  %%i
  14.      del "%%i"
  15. ))
  16. echo 删除空文件夹
  17. for /f "delims=" %%i in ('dir/b/ad/s^|sort/r')do (
  18.      rd "%%i" 2>nul&&echo %%i
  19. )
  20. pause
复制代码


批处理删除N天前文件 不能删除子文件夹

  1. @echo off
  2. ::取7天之前的日期.
  3. >deldata_zw.zhu.vbs echo wscript.echo dateadd("d",+1,date)
  4. for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo deldata_zw.zhu.vbs') do (
  5. set y=%%i
  6. set m=%%j
  7. set d=%%k
  8. )
  9. if %m% LSS 10 set m=0%m%
  10. if %d% LSS 10 set d=0%d%
  11. set rq=%y%-%m%-%d%
  12. echo 注意:即将删除 %rq% 以前建立的文件
  13. pause
  14. for /f "skip=4 delims=" %%i in ('dir/tc D:\test\log\*.txt') do call :w "%%i"
  15. del deldata_zw.zhu.vbs
  16. goto :eof
  17. :w
  18. for /f "tokens=4 delims= " %%a in (%1) do set str=%%a
  19. set var=%1
  20. set num=%var:~1,10%
  21. if %num% lss %rq% del /q D:\test\log\%str%

复制代码


forfiles删除N天前文件


  1. forfiles /p D:\test\新建文件夹 /m *.txt -d -0 /c "cmd /c del /f @path" /s
复制代码


回复

使用道具 举报

293

主题

6

回帖

4093

积分

管理员

积分
4093
批处理删除N天前的文件及文件夹

  1. @echo off
  2. set/a n=0   &rem 可调整 不要超过一个月的天数
  3. set/a y=%date:~,4%,m=1%date:~5,2%-100,d=1%date:~8,2%-100
  4. set/a d-=n,"1/(d>>31)" 2>nul&&(
  5.     set/a m-=1,d+=31,y-=!m,m+=!m*12
  6.     set/a "d-=!(m-2)*(3-!(y&3))+!(m-4)+!(m-6)+!(m-9)+!(m-11)")
  7. set/a m+=100,d+=100
  8. set ymd=%y%-%m:~1%-%d:~1%
  9. echo 删除%n%天前文件
  10. cd/d "%~dp0"
  11. for /r %%i in (*.txt)do if /i not "%%i"=="%~f0" (
  12.     if "%%~ti" lss "%ymd%y" (
  13.         echo %%~ti  %%i
  14.      del "%%i"
  15. ))
  16. echo 删除空文件夹
  17. for /f "delims=" %%i in ('dir/b/ad/s^|sort/r')do (
  18.      rd "%%i" 2>nul&&echo %%i
  19. )
  20. pause
复制代码


批处理删除N天前文件 不能删除子文件夹

  1. @echo off
  2. ::取7天之前的日期.
  3. >deldata_zw.zhu.vbs echo wscript.echo dateadd("d",+1,date)
  4. for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo deldata_zw.zhu.vbs') do (
  5. set y=%%i
  6. set m=%%j
  7. set d=%%k
  8. )
  9. if %m% LSS 10 set m=0%m%
  10. if %d% LSS 10 set d=0%d%
  11. set rq=%y%-%m%-%d%
  12. echo 注意:即将删除 %rq% 以前建立的文件
  13. pause
  14. for /f "skip=4 delims=" %%i in ('dir/tc D:\test\log\*.txt') do call :w "%%i"
  15. del deldata_zw.zhu.vbs
  16. goto :eof
  17. :w
  18. for /f "tokens=4 delims= " %%a in (%1) do set str=%%a
  19. set var=%1
  20. set num=%var:~1,10%
  21. if %num% lss %rq% del /q D:\test\log\%str%

复制代码


forfiles删除N天前文件


  1. forfiles /p D:\test\新建文件夹 /m *.txt -d -0 /c "cmd /c del /f @path" /s
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

返回顶部