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

使用PowerShell脚本删除目录下一周前重复文件(保留特定文件)

完善后的PowerShell脚本
$Location = "C:\temp\Folder\"
$DaysOld = 7
$CutoffDate = (Get-Date).AddDays(-$DaysOld)
$ProtectedPattern = "DontDelete*"

# 获取目标目录下所有非保护文件,按文件名前10位分组
Get-ChildItem -Path $Location -File |
    Where-Object { $_.Name -notlike $ProtectedPattern } |
    Group-Object -Property { $_.Name.Substring(0, 10) } |
    ForEach-Object {
        # 对每个重复文件组,筛选出超过一周未修改的文件并删除
        $_.Group | Where-Object { $_.LastWriteTime -lt $CutoffDate } |
            Remove-Item -Force -WhatIf
    }

关键说明

  • 排除保护文件:用Where-Object { $_.Name -notlike $ProtectedPattern }直接过滤掉所有DontDelete开头的文件,确保这类文件无论新旧、是否重复都不会被处理。
  • 按重复规则分组:通过Group-Object根据文件名前10位字符分组,把所有前10位相同的重复文件归为一组,精准定位需要处理的对象。
  • 筛选并删除过期文件:对每个分组内的文件,只删除最后写入时间早于一周前的文件,完全匹配需求。
  • 安全测试机制:脚本中添加了-WhatIf参数,运行时只会输出拟删除的文件路径,不会执行实际删除操作。确认逻辑无误后,去掉该参数即可正式执行删除。

对原脚本的优化点

  1. 移除了不必要的中间文件(Remove.txt),直接在内存中处理文件对象,避免磁盘IO开销和路径错误。
  2. 新增重复文件分组逻辑,解决了原脚本无法识别重复文件的核心问题。
  3. 明确设置保护文件过滤规则,彻底避免误删需要保留的内容。
  4. 优化变量命名(如$W改为$DaysOld),提升脚本可读性和维护性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 01:03:23