вот один из способов сделать это. [ ухмылка ]
что он делает ...
- устанавливает константы
- получает файлы, соответствующие целевому типу
- получает свойство
.Directory
каждого файла - сортирует только уникальные элементы
- получает свойство
.FullName
этих каталогов - сохраняет их в коллекцию
- показывает эту коллекцию на экране
код ...
$SouceDir = $env:TEMP
$Filter = '*.log'
$FileList = Get-ChildItem -LiteralPath $SouceDir -Filter $Filter -File -Recurse
$DirsWithTargetFileType = ($FileList.Directory |
Sort-Object -Unique).FullName
$DirsWithTargetFileType
вывод ...
C:\Temp
C:\Temp\zzz
C:\Temp\zzz - Copy
C:\Temp\zzz - Copy\test 4.poiu
C:\Temp\zzz - Copy\TestingStuff - Copy\CDelta\Documents
C:\Temp\zzz - Copy\TestingStuff\CDelta\Documents
C:\Temp\zzz - Copy\Users - Copy\CDelta\Documents
C:\Temp\zzz - Copy\Users\CDelta\Documents
C:\Temp\zzz\TestingStuff - Copy\CDelta\Documents
C:\Temp\zzz\TestingStuff\CDelta\Documents
C:\Temp\zzz\Users - Copy\CDelta\Documents
C:\Temp\zzz\Users\CDelta\Documents
выше просто имена директорий в виде строк. если вам нужны полные объекты, удалите .FullName
в конце строки 7.