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
出于构建循环的目的,我只想在文件夹中保留 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