Powershellでカスタムオブジェクト配列を文字列配列に変換する 質問する

Powershellでカスタムオブジェクト配列を文字列配列に変換する 質問する

そこで、いくつかの Powershell ライブラリを調整しているのですが、最善の方法で解決したい簡単な質問があります.....

つまり、配列内にいくつかのカスタム PSObject があります。

$m1 = New-Object PSObject –Property @{Option="1"; Title="m1"}
$m2 = New-Object PSObject –Property @{Option="2"; Title="m2"}
$m3 = New-Object PSObject –Property @{Option="3"; Title="m3"}

$ms = $m1,$m2,$m3

それを文字列配列に変換したいのですが...理想的には、プロパティが連結された各項目のエントリを持つ単一の文字列配列です。つまり

「1m1」、「2m2」、「3m3」

試してみました$ms | Select-Object Option,Titleが、$ms | %{ "O: $_.Option T: $_.Title "}PSObject の配列 (再び) または配列の配列が返されます。

ベストアンサー1

これにより、必要なものが得られます。

$strArray = $ms | Foreach {"$($_.Option)$($_.Title)"}

オブジェクトの選択SQLのようなものだ選択する選択されたプロパティを新しいオブジェクト (v1/v2 では pscustomobject、V3 では Selected.<orignalTypeName>) に投影します。2 番目のアプローチは機能しません。$_.Option文字列では変数が「補間」されるだけだからです$_。式は評価されません$_.Option

たとえば、「$(...)」や「$($_.Option)」などの部分式を使用して、二重引用符で囲まれた文字列を取得し、式を評価できます。

おすすめ記事