私は顧客のインポートの一部としてオブジェクトを作成しました。各顧客オブジェクトには、「Cust」という接頭辞を持つすべてのプロパティの動的セットがあります。 。私はこれらのプロパティをループするだけで、まずプロパティの名前を取得し、次に値を取得する必要があります。動的オブジェクトのプロパティの値を確認します
$customerOptions = $Customer | Select-Object -property "Cust.*"
私は顧客のインポートの一部としてオブジェクトを作成しました。各顧客オブジェクトには、「Cust」という接頭辞を持つすべてのプロパティの動的セットがあります。 。私はこれらのプロパティをループするだけで、まずプロパティの名前を取得し、次に値を取得する必要があります。動的オブジェクトのプロパティの値を確認します
$customerOptions = $Customer | Select-Object -property "Cust.*"
あなたは隠されたpsobject
プロパティを介して各カスタムオブジェクトのプロパティ名を調べることができます:あなたはまた、すべての可能なプロパティ名を列挙するために、この技術を使用することができます
$Customer[0].psobject.Properties |Where-Object {$_.Name -like 'Cust.*'} |Select Name,Value
とSelect-Object
$CustPropNames = $Customer |ForEach-Object {
$_.psobject.Properties |Where-Object {$_.Name -like 'Cust.*'} |Select-Object -Expand Name
} |Select-Object -Unique
$customerOptions = $Customer |Select-Object -Property $CustPropNames
ありがとう私はこれを試してみる – westerdaled
$Customer
が何であり、どのようなものを使用したいかについての情報があまりないので、私は0を推測しますは単一のオブジェクトであり、配列ではありません。 Cust.
で始まるプロパティをループし、property-nameとproperty-valueの両方にアクセスできるようにするには、これを使用します。あなたのニーズに合わせてカスタマイズ:
$Customer = [pscustomobject]@{ Name = "Object1"; "Cust.ID" = 1; "Cust.Car" = "Mercedes"}
$Customer.psobject.Properties | Where-Object { $_.Name -like 'Cust.*' } | ForEach-Object {
#Foreach property with a Cust. prefix
$PropertyName = $_.Name
$PropertyValue = $_.Value
Write-Host "$PropertyName = '$PropertyValue'"
}
出力:
Cust.ID = '1'
Cust.Car = 'Mercedes'
あなたは、配列を出力しているし、あなただけのようないくつかのプロパティ(第一の目的で利用可能なもの)を取得した場合:
$Customer = @()
$Customer += [pscustomobject]@{ Name = "Object1"; "Cust.ID" = 1; "Cust.Car" = "Mercedes"}
$Customer += [pscustomobject]@{ Name = "Object2"; "Cust.ID" = 2; "Cust.Moped" = "Vespa"}
$Customer | Select-Object -Property "Cust.*"
Cust.ID Cust.Car
------- --------
1 Mercedes
2
を
次に、cust.*
のプロパティの完全なリストを作成し、それをSelect-Object
文で使用したいとします。
$AllCustProperties = $Customer | ForEach-Object { $_.psobject.Properties } | Where-Object { $_.Name -like 'Cust.*' } | Select-Object -ExpandProperty Name -Unique
$Customer | Select-Object -Property $AllCustProperties
Cust.ID Cust.Car Cust.Moped
------- -------- ----------
1 Mercedes
2 Vespa
これも試してみる - 私はこれを把握するためにしばらく時間がかかっていたと私は嬉しく思います; - – westerdaled
F $ allCustProperties = $ User | ForEach-Object {$ _。psObject.Properties }} | Where-Object {$ _。名前のように 'CUST。*'}はチャームのように動作し、その後foreachループで$ custProperty.Valueと$ custProperty.Nameを検査します。提案されたコード行の前に修正する;-( – westerdaled
ここに何が起こっているのか分かりません。コメントのどこかに質問がありましたか?答えがあなたの問題を解決しましたか:-) –
あなたのコードは何をしていますか?正しいプロパティと値を生成しますか? –
'$ Customer'内のオブジェクトの作成方法と出力の使い方を表示する必要があります。サンプルは単純で再現性があり、望ましい結果がはっきりしている必要があります。 –
@MikeShepard $お客様はCust.Option1 = "Yes"、Cust.Option2 = "No"などの表示を正しく表示します。ランタイムまでのオプション数や値はわかりません。 – westerdaled