在PowerShell中包含/排除文件(关于它们的年龄)

时间:2013-10-18 08:11:11

标签: powershell

我想包含(并因此删除)超过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文件,我不能将include和exclude结合起来?

1 个答案:

答案 0 :(得分: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进行测试。