You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用Windows命令行删除指定目录中特定创建日期的所有文件?

如何使用Windows命令行删除指定目录中特定创建日期的所有文件?

别急,这种批量删文件的糟心事我碰到过好几次,Windows自带的工具完全能搞定,不用怕复杂,我给你说两种靠谱的方法,你选顺手的来:

方法一:用命令提示符(CMD)的forfiles工具

这是Windows原生的批量文件处理工具,专门对付这种资源管理器扛不住的大量文件场景。

步骤:

  1. 先确定你要删除的文件的创建日期格式:打开CMD,输入下面的命令(把路径换成你的Documents文件夹),看看输出的日期是什么格式:
forfiles /P "C:\Users\你的用户名\Documents" /M *.* /C "cmd /c echo @fdate"

比如输出是05/20/2024(月/日/年),那你的目标日期就得写成这个格式;如果是2024-05-20(年-月-日),就对应调整。

  1. 测试命令(非常重要!先确认要删的文件对不对):把目标日期填进去,把del @path换成echo @path,这样只会输出要删除的文件路径,不会真删:
forfiles /P "C:\Users\你的用户名\Documents" /S /M *.* /C "cmd /c if @fdate=='05/20/2024' echo @path"

参数说明:

  • /P:指定要操作的目录(你的Documents路径)
  • /S:递归处理子文件夹(如果那些垃圾文件在子文件夹里也有的话)
  • /M *.*:匹配所有类型的文件
  • /C:执行后面的CMD命令,判断文件的创建日期(@fdate)是否等于目标日期,是的话就输出路径
  1. 确认没问题后,把echo @path改成del @path,执行删除:
forfiles /P "C:\Users\你的用户名\Documents" /S /M *.* /C "cmd /c if @fdate=='05/20/2024' del @path"

如果要连当天创建的空文件夹也一起删,可以把del @path换成if @isdir==TRUE rd @path else del @path

方法二:用PowerShell(可能更直观)

如果你对PowerShell不排斥,这个方法的逻辑更清晰,处理大量文件也很稳:

  1. 先测试(同样先看要删的文件):
Get-ChildItem "C:\Users\你的用户名\Documents" -Recurse -File | Where-Object {$_.CreationTime.Date -eq (Get-Date "2024-05-20")} | Select-Object FullName

参数说明:

  • Get-ChildItem:获取指定目录下的所有文件
  • -Recurse:递归子文件夹
  • -File:只处理文件(如果要删文件夹,去掉这个参数,后面改成Remove-Item -Recurse -Force
  • Where-Object:过滤出创建日期等于目标日期的文件
  • Select-Object FullName:输出文件的完整路径
  1. 确认后执行删除:
Get-ChildItem "C:\Users\你的用户名\Documents" -Recurse -File | Where-Object {$_.CreationTime.Date -eq (Get-Date "2024-05-20")} | Remove-Item -Force

如果要删除当天创建的文件夹,把命令改成:

Get-ChildItem "C:\Users\你的用户名\Documents" -Recurse | Where-Object {$_.CreationTime.Date -eq (Get-Date "2024-05-20")} | Remove-Item -Recurse -Force

重要提醒:

  • 一定要替换命令里的你的用户名和目标日期,别直接抄例子!
  • 千万先测试,确认输出的文件都是你要删的那些,再执行删除命令,避免误删重要文件
  • 因为文件有200多万,命令执行会需要一段时间,别中途中断,耐心等它跑完就行

备注:内容来源于stack exchange,提问作者ulfelder

火山引擎 最新活动