Powershell カスタムオブジェクト
PowerShellカスタムオブジェクト
パイプや戻り値で使われているカスタムオブジェクトをコードで意識的に作成する方法。
作成方法
Hashから変換
$obj1 = [PSCustomObject]@{ "Name" = "Tom"; "Age" = 29; } $obj1.Name
応用:hashから既存オブジェクト作成
Add-Type -AssemblyName System.Windows.Forms $form1 = [System.Windows.Forms.Form]@{ Text = "Hello"; Width = 400; Height = 200; } $form1.ShowDialog()
引数なしのコンストラクタのあるクラスで可能。無ければできない。エラーになる?
hashを引数に渡す
hashからの変換より少し面倒。
$props1 = @{ "Name" = "Tom"; "Age" = 29; } $obj1 = New-Object PSCustomObject -Property $props1
プロパティ毎
最も面倒な方法
$obj1 = New-Object PSCustomObject $obj1 | Add-Member -MemberType NoteProperty -Name "Name" -Value "Tom" $obj1 | Add-Member -MemberType NoteProperty -Name "Age" -Value 29