Это тоже работает:
ls | ?{$_.PsIsContainer}
Нет сомнений, что это немного более многословно, чем bash или cmd.exe. Вы, конечно, можете добавить функцию и псевдоним в свой профиль, если хотите уменьшить детализацию. Я посмотрю, смогу ли я найти способ использовать -filter.
Что касается дальнейшего расследования, я не верю, что есть более краткий способ сделать это, если не создавать собственную функцию и псевдоним. Вы можете добавить это в свой профиль:
function Get-ChildContainer
{
param(
$root = "."
)
Get-ChildItem -path $root | Where-Object{$_.PsIsContainer}
}
New-Alias -Name gcc -value Get-ChildContainer -force
Затем ls каталоги в папке:
gcc C:\
Это решение будет немного ограничено, так как оно не будет обрабатывать такие причудливые вещи, как -Include, -Exclude, -Filter, -Recurse и т. Д., Но вы можете легко добавить это к функции.
На самом деле, это довольно наивное решение, но, надеюсь, оно направит вас в правильном направлении, если вы решите его использовать. Если честно с тобой, хотя я бы не стал беспокоиться. По моему личному мнению, дополнительная многословность в этом одном случае более чем преодолена общей большей гибкостью PowerShell.