我正在使用PowerShell 2.0,并且希望输出特定路径的所有子目录。以下命令输出所有文件和目录,但是我不知道如何过滤掉文件。

Get-ChildItem c:\mypath -Recurse

我尝试使用$_.Attributes来获取属性,但是后来我不知道如何构造System.IO.FileAttributes的文字实例来进行比较。在cmd.exe中将是
dir /b /ad /s

最佳答案

对于低于3.0的PowerShell版本:FileInfo返回的Get-ChildItem对象具有“base”属性PSIsContainer。您只想选择那些项目。

Get-ChildItem -Recurse | ?{ $_.PSIsContainer }
如果您想要目录的原始字符串名称,则可以执行
Get-ChildItem -Recurse | ?{ $_.PSIsContainer } | Select-Object FullName
对于PowerShell 3.0及更高版本:
Get-ChildItem -Directory
您还可以使用别名dirlsgci

10-06 03:09