何気に使っていたPSCustomObjectの基本的な使い方を確認してみました。
<#
.SYNOPSIS
PSCustomObjectの操作を確認する。
#>
# PSCustomObjectの生成
$psco = [PSCustomObject]@{'A' = [PSCustomObject]@{'B' = [PSCustomObject]@{'C' = 'DATA' }}}
# プロパティの参照
Write-Host $psco
# @{A=}
Write-Host $psco.A
# @{B=}
Write-Host $psco.A.B
# @{C=DATA}
Write-Host $psco.A.B.C
# DATA
# プロパティへ代入
$psco.A.B.C = "Foo"
# 代入の確認
Write-Host $psco.A.B.C
# Foo
$psco = [PSCustomObject]@{
A = 1
B = 2
}
# キーの一覧を取得
$psco | Get-Member -MemberType NoteProperty | Select -ExpandProperty Name
# A
# B
# キーの一覧から要素へアクセス
$psco | Get-Member -MemberType NoteProperty | Select -ExpandProperty Name | % {
$Name = $_
$psco.$Name = $psco.$Name + 1
Write-Host $Name $psco.$Name
}
# A 2
# B 3
# プロパティの追加
$psco | Add-Member -MemberType NoteProperty -Name 'C' -Value 4
# プロパティの削除
$psco.psobject.properties.remove('B')
# 結果の確認
$psco | Get-Member -MemberType NoteProperty | Select -ExpandProperty Name | % {
$Name = $_
Write-Host $Name $psco.$Name
}
# A 2
# C 4
ConvertFrom-JsonでJSON形式のファイルをPowerShellで扱う場合など、PSCustomObjectを使う場面があるので、動作確認をしてみました。


PowershellでJSON形式を扱うサンプル2「JSONxPSCustomObject」
前回JSON形式をPowersehllのPSCustomObjectに変換するサンプルを試しました。今回は相互に変換してみたいと思います。<#.SYNOPSISJSON形式で保存サンプルスクリプト<CommonParameters>はサポー...
連想配列からキャストすることが多く連想配列みたいなものだと思っていたのですが、プロパティのアクセス方法など意外と面倒な感じがします。通常用途では連想配列の方が使い勝手がよさそうです。
PowerShellは得にそうだと思いますが、言語としての柔軟性をあてにしてコードを書いていると、実際動かすと実用に耐えなスクリプトになる場合があります。そのような場合、とりあえずコードを書いて試してみることがお手軽に出来る点がスクリプト言語の良い点だと思います。
コメント