我们有一个小的脚本,该脚本创建按每日日期命名的文件夹。我有一个脚本可以删除30天以上的文件夹。
dir "\\nas\Backup_old\*" -ErrorAction SilentlyContinue |
Where { ((Get-Date) - $_.LastWriteTime).days -gt 30} |
Get-ChildItem -Recurse | Remove-Item -Recurse -Force
原则上它可以正常工作。带有竞争的子文件夹将被删除。 但是主文件夹仍然存在,并且LastWriteTime被设置为脚本的运行时。文件夹为空。有人有解决这个问题的想法吗?
答案 0 :(得分:3)
您可能只需要删除Get-ChildItem
的第二个实例(请注意dir
只是Get-ChildItem
的别名),因为这导致它删除了每个Get-ChildItem "\\nas\Backup_old\*" -ErrorAction SilentlyContinue |
Where-Object { ((Get-Date) - $_.LastWriteTime).days -gt 30} |
Remove-Item -Recurse -Force -WhatIf
的子代。第一个返回的目录:
-WhatIf
看看WhatIf输出,如果它现在看起来将删除您期望的内容,请删除drinks[]
。