2013-06-21 2 views
0

Это мой второй день написания сценариев и за неделю до того, как я только что прочитал о powershell. Мне была задана задача сортировки специальных конфигураций.zip элементов из нескольких подпапок, которые могут быть? СЛИШКОМ большой размер. Так я искал папки размером более 1 Кбайт, чтобы предотвратить ошибку, имеющих пустые папки ..Использование более 1-го трубопровода для

Теперь я хотел сортировать папки по длине со следующими операциями:

$_.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

Я не уверен, что я точно понял, но вы можете просто использовать -and оператор

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

да вы сделали! большое спасибо . это было быстро :) – RayofCommand