删除基于powershell中顶级目录的年龄的目录?

时间:2014-04-09 15:36:22

标签: powershell

我在目录中有一堆文件夹,都包含许多不同年龄的子目录。我需要做的是根据顶级目录的年龄删除其中的文件夹。我尝试了一些事情,但是会发生什么呢?它会递归目录并删除它们。

例如,假设我想删除超过14天的顶级文件夹(及其内容,不论年龄): C:\ myfolder \ folder1(年龄30天) C:\ myfolder \ folder1 \ subfolder1(10天)

我想要删除folder1和所有内容,即使subfolder1比14天更新....

有意义吗?我试过了:

Get-ChildItem -Path c:\myfolder -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt 30 } | Remove-Item -Force

但这并不能删除任何内容?我在这里错过了什么?谢谢!

2 个答案:

答案 0 :(得分:1)

creationTime是一个日期,因此您不能将其与数字进行比较:

Get-ChildItem -Path c:\myfolder -Force | Where-Object { !$_.PSIsContainer -and $_.CreationTime -lt (get-date.addDays(-30)) } | Remove-Item -Force

答案 1 :(得分:0)

您缺少使用Where-Object{ !$_.PSIsContainer }排除文件夹。所以你告诉它不要包含文件夹。

另外,您希望将日期与日期进行比较。

Get-ChildItem -Path c:\myfolder -Force | Where-Object { $_.PSIsContainer -and $_.CreationTime  -lt (get-date).adddays(-29) } | Remove-Item -Force