Я использую PowerShell 2.0, и я хочу передать по каналу все подкаталоги определенного пути. Следующая команда производит все файлы и каталоги, но я не могу выяснить, как отфильтровать файлы.
Get-ChildItem c:\mypath -Recurse
Я попытался использовать $_.Attributes
для получения атрибутов, но затем я не знаю, как создать литеральный экземпляр System.IO.FileAttributes
сравнить его с. В cmd.exe
это было бы
dir /b /ad /s
Для версий PowerShell ниже 3.0:
Объект FileInfo
, возвращаемый Get-ChildItem
, имеет «базовое» свойство, PSIsContainer
. Вы хотите выбрать только эти элементы.
Get-ChildItem -Recurse | ?{ $_.PSIsContainer }
Если вам нужны необработанные строковые имена каталогов, вы можете сделать
Get-ChildItem -Recurse | ?{ $_.PSIsContainer } | Select-Object FullName
Для PowerShell 3.0 и выше:
dir -Directory