直接ではありません。 Measure-Object
は、入力オブジェクトではなく、そのような値を簡単に取得するためのものです。あなたは測定-Objectから最大値を取得し、配列と比較、それはいくつかの手順を取ることができます:
$array = Get-VM
$max = ($array | measure-object -Property ProvisionedSpaceGB -maximum).maximum
$array | ? { $_.ProvisionedSpaceGB -eq $max}
また、完全に測定・オブジェクトを断念し、セットを繰り返し、最大の交換ができ、あなたが行くように出力します。
$max = 0
$array | Foreach-Object
{
if($max -le $_.ProvisionedSpaceGB)
{
$output = $_
$max = $_.ProvisionedSpaceGB
}
}
$output
これは、常に1つの値を返すように少し汚れています。同じ最大値(たとえば、Get-ChildItemを使用する場合のファイルサイズの長さ)が複数ある場合に、再利用する場合は、マイナーな調整が必要です。 2つ以上のオブジェクトがProvisionedSpaceGB
の同じ値を持つ場合、後者の反復で$output
を置き換えます。 $output
を簡単に修正してコレクションにすることができます。
私は前者のソリューションを自分で好むが、私はその問題について考える方法を変えたいと思っていた。
あなたは '$配列を書いた再場合| ? {0} ' ' @($ array |?{$ _} ProvisionedSpaceGB -eq $ max})[0] ' あなたのために単一の値を返すかもしれないが、 Hyper Anthonyは、必ずしもあなたが望むものではないと述べました。 –