我在目录中有一堆文件夹,都包含许多不同年龄的子目录。我需要做的是根据顶级目录的年龄删除其中的文件夹。我尝试了一些事情,但是会发生什么呢?它会递归目录并删除它们。
例如,假设我想删除超过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
但这并不能删除任何内容?我在这里错过了什么?谢谢!
答案 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