Удалить дочерние каталоги в powershell, включая символические ссылки - PullRequest
0 голосов
/ 03 июля 2018

В настоящее время возникают проблемы, я сейчас делаю это:

Get-ChildItem $PATH -Recurse -ErrorAction SilentlyContinue | 
  Where-Object {($_.Attributes -notmatch '\"Directory\"') -and  
              ($_.LastWriteTime -lt (Get-Date).AddHours(-12))}| 
    Remove-Item -Force -Recurse

Теперь, это удалило бы отлично, если бы у меня не было символических ссылок, но я имею Я получаю эту ошибку:

Remove-Item: существует несоответствие между тегом, указанным в запросе, и тегом, присутствующим в точке повторной обработки В строке: 1 символ: 184 + ... ($ _. LastWriteTime -lt (Get-Date) .AddHours (-12))} | Remove-Item -Force + ~~~~~~~~~~~~~~~~~~ + CategoryInfo: Не указано: (:) [Remove-Item], Win32Exception + FullyQualifiedErrorId: System.ComponentModel.Win32Exception, Microsoft.PowerShell.Commands.RemoveItemCommand

Я не могу обновить powershell до v6. Кажется, это связано с: https://github.com/powershell/powershell/issues/621#issuecomment-289230180

У кого-нибудь есть обходной путь?

1 Ответ

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

Эта проблема, похоже, исправлена ​​в PS 6 (ref: https://github.com/powershell/powershell/issues/621)

В PS 5.1 можно обойти это, используя:

$(get-item $theSymlinkDir).Delete()

или, как отмечается в комментариях к Q для LotPings, для этого конкретного цикла Foreach-Object:

|? LinkType -eq 'SymbolicLink'| % { $_.Delete() }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...