Удаление папок и содержимого со многими конкретными именами каталогов из всех вложенных папок с помощью powershell

#powershell #directory #subdirectory

#powershell #каталог #подкаталог

Вопрос:

Я использую win 10 и Power Shell версии 5.118362.1110

У меня есть сотни дубликатов именованных подкаталогов в нескольких подкаталогах в одном каталоге, мне нужно удалить конкретные каталоги и их содержимое, и просмотр каждого из них вручную занимает очень много времени. Было бы здорово, если бы он мог ссылаться на текстовый файл, который я мог бы ввести, в котором они могли бы отображаться по одной строке за раз. (или что бы вы ни предложили).

Я пробовал:

 $source="h:Batch Remove TEST" #location of directory to search
$strings=@("1306001", "1311001")

cd ($source); get-childitem -Include ($strings) -Recurse -force | Remove-Item -Force –Recurse
  

Это приведет к удалению двух папок из первого подкаталога, но не из последующих вложенных каталогов.

Он вернул эту ошибку:

 Get-ChildItem : Access is denied
At H:Batch Remove TESTcm.ps1:1 char:1
  Get-ChildItem . -Include 1306001,1311001 -Recurse -Force | Remove-Ite ...
      CategoryInfo          : NotSpecified: (:) [Get-ChildItem],UnauthorizedAccessException
      FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetChildItemCommand
  

Я в тупике.
Спасибо!

Комментарии:

1. Похоже, вы не можете удалить файл powershell, который у вас открыт в данный момент

2. Каталоги и их файлы находятся под каталогом файлов powershell. Он отлично работает в первом подкаталоге, затем останавливается перед проверкой перед следующим подкаталогом. Мне нужно, чтобы проверить все подкаталоги в файле powershell, удалить каталоги и файлы, указанные в $strings, а не только первый подкаталог. Спасибо!