23

だから私はいくつかの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 の配列 (再び) または配列の配列が返されます。

4

2 に答える 2

46

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

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

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

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

于 2013-01-15T16:09:08.877 に答える