我如何只使用Get获取目录
我正在使用PowerShell 2.0,并且想要分出特定路径的所有子目录。 以下命令输出所有文件和目录,但我无法弄清楚如何过滤掉这些文件。
Get-ChildItem c:mypath -Recurse
我试过使用$_.Attributes
来获取属性,但是我不知道如何构建一个System.IO.FileAttributes
的文字实例来比较它。 在cmd.exe
它会
dir /b /ad /s
对于小于3.0的PowerShell版本:
由Get-ChildItem
返回的FileInfo
对象具有“base”属性PSIsContainer
。 您只想选择这些项目。
Get-ChildItem -Recurse | ?{ $_.PSIsContainer }
如果你想要目录的原始字符串名称,你可以这样做
Get-ChildItem -Recurse | ?{ $_.PSIsContainer } | Select-Object FullName
对于PowerShell 3.0及更高版本:
dir -Directory
在PowerShell 3.0中,它更简单:
Get-ChildItem -Directory #List only directories
Get-ChildItem -File #List only files
Get-ChildItem -dir #lists only directories
Get-ChildItem -file #lists only files
如果您更喜欢别名,请使用
ls -dir #lists only directories
ls -file #lists only files
要么
dir -dir #lists only directories
dir -file #lists only files
为了递归子目录,添加-r
选项。
ls -dir -r #lists only directories recursively
ls -file -r #lists only files recursively
测试PowerShell 4.0,PowerShell 5.0(Windows 10)和PowerShell Core 6.0(Windows 10,Mac和Linux)。
链接地址: http://www.djcxy.com/p/29095.html