Board logo

标题: [文件操作] 批处理如何删除某个文件夹里指定天数前的文件? [打印本页]

作者: ai_hinemon    时间: 2016-2-14 13:38     标题: 批处理如何删除某个文件夹里指定天数前的文件?

比如我想删除D盘 01文件夹下30天之外的文件,各位有好的批处理吗?
不胜感激
作者: ivor    时间: 2016-2-14 14:36

本帖最后由 ivor 于 2016-2-18 21:56 编辑

回复 1# ai_hinemon

下面的2种方法都是以访问时间为准
PowerShell代码:-2则为2天前访问的文件或者文件夹,用之前请先去掉del命令,确保准确再加上


dir 返回的对象,其中有2个属性,LastAccessTime和LastWriteTime
  1. $delFile = dir | ?{$_.LastAccessTime -gt ((Get-date).AddDays(-2))}
  2. del $delFile
复制代码
建议慢慢转向powershell,cmd不支持对象,好多功能实现太麻烦。

python:支持拖拽文件夹
  1. import os,sys,time
  2. #days设定为多少天之前
  3. days=2
  4. if len(sys.argv) < 2:
  5.     path=input("enter a path:")
  6. else:
  7.     path=sys.argv[1]
  8. listfile=os.listdir(path)
  9. for line in listfile:  
  10.     statinfo=os.stat(r"%s\%s"%(path,line))
  11.    
  12.     if ((time.time()/86400) - (statinfo.st_atime/86400)) > days:
  13.         print("%s\%s"%(path,line))
  14.         os.popen("del %s\%s"%(path,line))
  15.     else:
  16.         print("%s"%(line))
  17. input("press any key to continue")
复制代码

作者: pcl_test    时间: 2016-2-14 16:35

forfiles /?




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2