2017-12-17 9 views
1

は、関数にパラメータを渡すと、オブジェクトのプロパティを参照するために何とかそれを使用することが可能です作業):関数にパラメータを渡すとプロパティを参照するためにそれを使用

function Some-Function ($objectarray, $parameter) 
{ 
    $result = $objectarray | ?{$_.$parameter -eq $true} 
} 

これはexanpleのために正常に動作するようです:

function Some-Function ($objectarray, $parameter) 
{ 
    $result = $objectarray | Select Name, $parameter 
} 

おかげ

答えて

0

オブジェクトプロパティに名前でアクセスできます。あなたは、あなただけの、たとえば、それを操作できるように結果を返す必要があり、ほとんどがあります。

function Some-Function ($objectarray, $parameter) 
{ 
    $objectarray | ?{$_.$parameter -eq $false} 
} 

Some-Function (Get-Process) Responding 
+0

感謝を参照してください。単一のオブジェクトを返すときに問題が.Countを使用していたように見えますが、ただ気づいただけです。 –

+1

実際には、オブジェクトを返さなかったのです。あなたは結果をキャプチャしていただけです。 –

0

Reza Aghaei's helpful answerは重要なポイントになります:あなたの本来の機能は出力を発生する文が欠落していました。

また、PSV3 +で、あなたは比較文の暗黙のブール論理を使用して機能を簡素化することができます。

:コメントあなたの状態では

function Some-Function ($objectarray, $property) { 
    # short for: ? { $_.$property } or ? { $_.$property -eq $true } 
    $objectArray | ? $property 
} 

を問題は、単一のオブジェクトを返すときに.Countを使用していた。

この問題は、PSv2でのみ発生します。でも$null - - .Count性質を持っている必要があり、スカラーまたはコレクションがいるかどうかPSV3 +任意の値では、

関連する問題