使用多个管道

时间:2013-06-21 10:46:05

标签: powershell

这是我编写脚本的第二天,也是我刚读完PowerShell的前一周。 我被赋予了一个任务,可以从几个子文件夹中挑选出特殊的configurations.zip项目。太大了。 所以我搜索了大于1 KB的文件夹,以防止出现空文件夹的错误..

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

$_.Length -gt 10KB
$_.PSIsContainer -eq $True

问题:我如何在一行中使用2个管道甚至更多的操作。 现在我的脚本当然会覆盖所有其他操作。

我找到了显示可能的页面: http://technet.microsoft.com/en-us/library/ee176927.aspx

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

非常感谢!

我的剧本:

$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"
}

1 个答案:

答案 0 :(得分:1)

我不确定我完全理解,但您可以使用-and运算符

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