从Get-ChildItem中仅获取叶节点

时间:2016-08-10 08:39:00

标签: powershell powershell-v3.0

我想从Get-ChildItem过滤掉只有叶子节点(文件夹),那些不包含任何其他文件夹的节点。

这是我当前的查询:

Get-ChildItem -Recurse -Directory -Exclude "*SubStr*"

3 个答案:

答案 0 :(得分:3)

他是在正确的道路上,但只是忘记了第二个Get-ChildItem命令的-Directory。

Get-ChildItem -Recurse -Directory -Exclude "*SubStr*" | Where-Object { -not (Get-ChildItem $_.FullName -Directory) }

注意:如果要查找隐藏文件夹,则必须在以下行中的两个Get-ChildItem命令中使用-Force。

答案 1 :(得分:0)

您需要另一个过滤器来确定文件夹中是否包含任何内容:

Get-ChildItem -Recurse -Directory -Exclude "*SubStr*" | Where-Object { -not (Get-ChildItem $_.FullName) }

答案 2 :(得分:0)

Get-ChildItem -Recurse -Directory -Exclude "*SubStr*" |?{$_.psiscontainer}