Получите список папок, содержащих файлы vb, с помощью powershell - PullRequest
0 голосов
/ 10 июля 2020
 Get-ChildItem  -Recurse -Filter *.vb 

Вернет все файлы vb в моем решении. Однако мне не нужны все файлы, мне нужен список всех папок, содержащих файлы vb.

Ответы [ 2 ]

3 голосов
/ 10 июля 2020
Get-ChildItem -Path "Your base path here" -filter *.vb -recurse -File | Select -unique DirectoryName

HTH

2 голосов
/ 10 июля 2020

вот один из способов сделать это. [ ухмылка ]

что он делает ...

  • устанавливает константы
  • получает файлы, соответствующие целевому типу
  • получает свойство .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.

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