如何利用Get-ChildItem结果?

时间:2017-02-02 13:10:41

标签: powershell powershell-v2.0

我想列出所有路径转到以" _S"结尾的文件夹名称递归。 我做到了:

Get-ChildItem -Recurse | Where-Object {($_.Attributes -match "Directory") -and ($_.Name.EndsWith("_S") -and ($_.PSIsContainer -eq 1))}

但结果不是一个数组。我怎样才能利用这些结果? 我的目标是拥有类似的东西:

  • Myfolder \ folder1 \ folder1_S
  • MyFolder中\ folder2_S

1 个答案:

答案 0 :(得分:1)

使用Select-Object并抓取文件的FullName

此外,正如@Paul ($_.Attributes -match "Directory")($_.PSIsContainer -eq 1)对问题的评论所述,这可能是多余的,可能需要删除其中一个。

Get-ChildItem -Recurse | Where-Object {($_.Attributes -match "Directory") -and ($_.Name.EndsWith("_S"))} | Select-Object -ExpandProperty FullName

以上内容也可以在PowerShell 3.0+中重构为

Get-ChildItem -Recurse -Directory -Filter *_S | Select-Object -ExpandProperty FullName

将以递归方式获取以" _S"结尾的所有目录的路径