Powershell 只保留文件夹中的 n 个最新项目(构建轮换)

Powershell keep only n latest items in folder (builds rotation)

出于构建循环的目的,我只想在文件夹中保留 10 个最新项目。构建位于以构建的 id(递增顺序)命名的子文件夹中。

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----          21.8.15   7:39 PM                121
d-----          21.8.15  10:39 PM                122
d-----          21.8.15  10:39 PM                123
d-----          21.8.15  10:39 PM                124
d-----          21.8.15  10:39 PM                125

我想知道有没有比我用的更优雅的方式

$exclude = dir | Sort-Object Name -Descending | Select-Object Name -f 10
Get-Item * | Where-Object { $_.PSIsContainer -and $exclude.Name -notcontains $_.Name} | Remove-Item

您可以使用 Select-Object -Skip $n 跳过 $n 个文件夹,然后删除其余文件夹:

Get-ChildItem -Directory | Sort-Object LastWriteTime -Descending |Select-Object -Skip 2 | Remove-Item -Recurse