Select-Objectで読みやすい算出属性を作る方法


Select-Objectで読みやすい算出属性を作る方法

概要

オブジェクトの算出属性をSelect-Objectで作る際に、
属性名が式そのままになってしまうことがよくあります。 (例えば$_ * $_など。)

本記事では、読みやすい算出属性の作り方を説明します。
(筆者の備忘録を兼ねます。)

読みにくい例

# 読みにくい算出属性の名前ができるアンチパターン
1..10|Select-Object {$_ * $_};

読みやすくする例

# 読みやすい算出属性の名前を作る正式な方法
1..10|Select-Object -Property @{
    Name = "SquaredValue";
    Expression = {$_ * $_};
};

自作関数で連想配列を入力する手間を省く方法

# 連想配列を書きたくない場合の代替関数の定義例
function Select-CalculatedProperty{
    [CmdletBinding()]
    param (
        [Parameter(ValueFromPipeline)]
        [ValidateNotNullOrEmpty()]
        [Object[]]    $Item,        
        [String]      $Name = "Value",        
        [ScriptBlock] $Expression = {$_}
    )
    
    process{
        $Item|Select-Object -Property @{Name = $Name; Expression = $Expression}
    }
    
}

まとめ

Select-Objectで、算出属性の名前を読みやすくする方法を紹介しました。

  • このエントリーをはてなブックマークに追加

PAGE TOP