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

如何用PowerShell批量删除父文件夹下超90天的日期命名子目录?

改进后的PowerShell脚本:自动清理过期日期文件夹并记录日志

以下脚本会自动遍历D:\下所有以Folder开头的父文件夹,删除其中命名为yyyymmdd格式且超过90天的子文件夹,同时将被删除的文件夹完整路径记录到日志文件中:

# 设置过期时间(90天前)
$expirationDate = (Get-Date).AddDays(-90)
# 日志文件路径,可自行修改
$logPath = "D:\FolderCleanupLog.txt"
# 获取D盘下所有Folder开头的父文件夹
$parentFolders = Get-ChildItem -Path "D:\" -Directory -Filter "Folder*"

foreach ($parent in $parentFolders) {
    # 获取当前父文件夹下符合yyyymmdd格式的子文件夹
    $dateFolders = Get-ChildItem -Path $parent.FullName -Directory | Where-Object { $_.Name -match '^\d{8}$' }
    
    foreach ($folder in $dateFolders) {
        # 从文件夹名称解析日期
        if ([DateTime]::TryParseExact($folder.Name, "yyyyMMdd", $null, [System.Globalization.DateTimeStyles]::None, [ref]$folderDate)) {
            # 判断是否过期
            if ($folderDate -lt $expirationDate) {
                # 删除文件夹(-WhatIf参数用于测试,确认无误后可删除)
                Remove-Item -Path $folder.FullName -Recurse -Force
                # 记录日志
                "$(Get-Date -Format 'yyyy-MM-dd HH:mm:ss') - 删除文件夹:$($folder.FullName)" | Out-File -Path $logPath -Append
            }
        }
    }
}

关键说明:

  • 自动遍历父文件夹:通过Get-ChildItem -Path "D:\" -Directory -Filter "Folder*"自动获取所有D:\下以Folder开头的父文件夹,无需手动维护父文件夹列表。
  • 日期解析优化:使用[DateTime]::TryParseExact更安全地解析文件夹名称为日期,避免手动截取字符串可能出现的错误。
  • 日志记录:每次删除操作都会将时间和文件夹完整路径追加到指定日志文件,方便后续核查。
  • 安全测试:脚本中可以先添加-WhatIf参数到Remove-Item命令后,运行时只会模拟删除操作并输出日志,确认逻辑正确后再移除该参数执行真实删除。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 17:20:32