Powershell 使用多个管道进行

Powershell 使用多个管道进行,powershell,Powershell,这是我编写脚本的第二天,也是我刚刚阅读powershell的前一周。 我的任务是从几个子文件夹中整理特殊的configurations.zip项目,这些子文件夹可能是?太大了。 因此,我搜索了大于1KB的文件夹,以防止出现空文件夹的错误 现在,我想通过以下操作按长度对文件夹进行排序: $_.Length -gt 10KB $_.PSIsContainer -eq $True 问题:如何使用两条或更多管道在一条管线中同时进行这两项操作。 现在,我的脚本当然覆盖了所有其他操作 我找到了那个页面,它

这是我编写脚本的第二天,也是我刚刚阅读powershell的前一周。 我的任务是从几个子文件夹中整理特殊的configurations.zip项目,这些子文件夹可能是?太大了。 因此,我搜索了大于1KB的文件夹,以防止出现空文件夹的错误

现在,我想通过以下操作按长度对文件夹进行排序:

$_.Length -gt 10KB
$_.PSIsContainer -eq $True
问题:如何使用两条或更多管道在一条管线中同时进行这两项操作。 现在,我的脚本当然覆盖了所有其他操作

我找到了那个页面,它显示了这是可能的:

但当我只是一个接一个地尝试两个操作时,我的脚本给了我一个错误。 所以:如何写这两个操作才能工作

非常感谢

我的剧本:

$startFolder = "C:\data1"

$colItems = (Get-ChildItem $startFolder -recurse | Measure-Object -property length -sum)

"Mother of all Folders $startFolder -- " + "{0:N2}" -f ($colItems.sum / 1MB) + " MB"

**$colItems = (Get-ChildItem $startFolder -recurse | Where-Object {$_.PSIsContainer -eq $True} )
$colItems = (Get-Childitem $startFolder -recurse | where-Object {$_.Length -gt 1000KB} | Sort-Object Length -descending)**

foreach ($i in $colItems)

{
    $subFolderItems = (Get-ChildItem $i.FullName | Measure-Object -property length -sum)
    $i.FullName + " -- " + "{0:N2}" -f ($subFolderItems.sum / 1MB) + " MB"
}

我不确定我是否完全理解了,但您可以使用
-和
运算符

$colItems = Get-ChildItem $startFolder -recurse | Where-Object {$_.PSIsContainer -eq $True -and $_.Length -gt 1000KB} | Sort-Object Length -descending)