Как удалить папку в Powershell? - PullRequest
       0

Как удалить папку в Powershell?

0 голосов
/ 19 октября 2018

у нас есть небольшой скрипт, который создает папки с именами по дням.У меня есть скрипт, который удаляет папки старше 30 дней.

dir "\\nas\Backup_old\*" -ErrorAction SilentlyContinue |
Where { ((Get-Date) - $_.LastWriteTime).days -gt 30} |
Get-ChildItem -Recurse | Remove-Item -Recurse -Force

В принципе, работает нормально.Подпапки с контентом будут удалены.Но основная папка все еще существует, и LastWriteTime привязан к среде выполнения сценария.Папка пуста.У кого-нибудь есть идея решить эту проблему?

1 Ответ

0 голосов
/ 19 октября 2018

Возможно, вам просто нужно удалить второй экземпляр 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...