You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows批量/PowerShell单行命令按MM_dd_yyyy名称删文件夹仅留最近7天

按文件夹名称日期删除旧归档的单行Windows命令实现

需求与约束

  • 录音归档目录下每日会生成名称格式为MM_dd_yyyy的文件夹存储当日录音
  • 要求仅保留最近7天的文件夹,删除其余旧文件夹,不允许依赖文件/文件夹的创建、修改时间元数据,必须完全基于文件夹名称的日期进行判断
  • 受企业域安全策略限制,无法运行.ps1格式的PowerShell脚本,仅支持在bat/cmd文件中运行单行命令或嵌套for循环逻辑

原有获取保留文件夹列表的实现

可通过以下单行命令获取需要保留的最近7天的文件夹名称:

powershell $d0=(Get-Date).ToString('MM-dd_yyyy'); $d1=(Get-Date).AddDays(-1).ToString('MM-dd_yyyy'); $d2=(Get-Date).AddDays(-2).ToString('MM-dd_yyyy'); $d3=(Get-Date).AddDays(-3).ToString('MM-dd_yyyy'); $d4=(Get-Date).AddDays(-4).ToString('MM-dd_yyyy'); $d5=(Get-Date).AddDays(-5).ToString('MM-dd_yyyy'); $d6=(Get-Date).AddDays(-6).ToString('MM-dd_yyyy'); $d0; $d1; $d2; $d3; $d4; $d5; $d6

例如2021年11月20日运行该命令,返回的保留文件夹列表如下:

11_20_2021
11_19_2021
11_18_2021
11_17_2021
11_16_2021
11_15_2021
11_14_2021

优化后可直接执行删除的单行命令

无需嵌套循环,简洁易读,可直接放入bat/cmd文件中运行:

powershell "($f=Get-ChildItem -Path 'D:\PosConvSav' -Filter '*_*_*' -Directory | Where-Object { $_.Name -match '\d{2}_\d{2}_\d{4}' } | Sort-Object -Descending)[7..($f.Count)] | Remove-Item -Recurse -Force"

提示:将命令中的D:\PosConvSav替换为实际的录音归档目录路径即可使用;如需调整保留天数,只需修改方括号内的起始数值即可,比如保留10天就改为[10..($f.Count)]。

内容的提问来源于stack exchange,提问作者James

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 20:36:01