0

我想包括(并因此删除)所有超过 30 天的文件。此外,我希望保留最旧的文件。

$Exclusion = (Get-ChildItem "$PATH" -Recurse | where {$_.Name -like "*.conf"} | Sort-Object CreationTime -Descending | Select-Object -Last 1).name
Get-ChildItem "\\$PATH" -Recurse | Where {$_.creationtime -lt (Get-Date).AddDays(-30)} | Remove-Item -Force -Include *.conf -Exclude $Exclusion

这行不通。我最旧的文件也被删除了。我的错误在哪里,或者如果两者都是 .conf 文件,我不能组合包含和排除?

4

1 回答 1

1

为什么不按年龄降序和-skip 1(最旧的文件)对对象进行排序。

我认为这样的代码应该可以工作。

Get-ChildItem "\\$PATH" -Recurse | Where {$_.creationtime -lt (Get-Date).AddDays(-30)} |Sort-Object creationtime -desc | select-object -skip 1 |  Remove-Item -Force -Include *.conf -Exclude $Exclusion

我这里没有要测试的powershell。

于 2013-10-18T08:19:17.263 回答