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

如何在指定目录中保留最后X个版本的文件夹?

实现指定目录层级保留最后X个文件夹的PowerShell方案

针对不同目录层级的保留需求,我们可以通过PowerShell遍历对应深度的文件夹,按创建时间排序后保留指定数量的最新文件夹,删除其余冗余项。以下是对应三个案例的具体实现:

案例1:保留顶层目录(d:\test 或 d:\test*)的最后2个文件夹

你的原有代码已经可以满足需求,补充-Recurse确保删除文件夹时一并清理内部内容:

Get-ChildItem -Path D:\test -Directory | Sort-Object -Property CreationTime | Select-Object -SkipLast 2 | Remove-Item -Recurse

案例2:保留每个一级目录下的最后2个二级文件夹(对应路径 d:\test**)

遍历每个一级目录,单独处理其下的二级文件夹:

# 遍历d:\test下的所有一级目录
Get-ChildItem -Path D:\test -Directory | ForEach-Object {
    # 在当前一级目录内,筛选二级文件夹,按创建时间排序后保留最后2个,删除其余
    Get-ChildItem -Path $_.FullName -Directory | Sort-Object CreationTime | Select-Object -SkipLast 2 | Remove-Item -Recurse -Force
}
  • -Force 参数用于强制删除,避免弹出确认提示;
  • $_.FullName 指代当前遍历到的一级目录的完整路径。

案例3:保留每个二级目录下的最后2个三级文件夹(对应路径 d:\test***)

直接定位到所有二级目录,处理其下的三级文件夹,自动保留所有父文件夹:

# 遍历d:\test下的所有二级目录
Get-ChildItem -Path D:\test\*\* -Directory | ForEach-Object {
    # 在当前二级目录内,筛选三级文件夹,按创建时间排序后保留最后2个,删除其余
    Get-ChildItem -Path $_.FullName -Directory | Sort-Object CreationTime | Select-Object -SkipLast 2 | Remove-Item -Recurse -Force
}

通用函数(适配任意层级和保留数量)

如果需要频繁处理不同场景,可以封装成通用函数,方便调用:

function Remove-OldFolders {
    param(
        [Parameter(Mandatory=$true)]
        [string]$ParentPathPattern,  # 父目录的路径匹配模式,比如"D:\test"、"D:\test\*"
        [Parameter(Mandatory=$true)]
        [int]$KeepCount  # 需要保留的最新文件夹数量
    )
    Get-ChildItem -Path $ParentPathPattern -Directory | ForEach-Object {
        Get-ChildItem -Path $_.FullName -Directory | 
            Sort-Object CreationTime | 
            Select-Object -SkipLast $KeepCount | 
            Remove-Item -Recurse -Force
    }
}

# 调用示例:
# 案例1:Remove-OldFolders -ParentPathPattern "D:\test" -KeepCount 2
# 案例2:Remove-OldFolders -ParentPathPattern "D:\test\*" -KeepCount 2
# 案例3:Remove-OldFolders -ParentPathPattern "D:\test\*\*" -KeepCount 2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 01:25:40