Поскольку информации о том, что $Customer
и что вы хотите использовать, мало что известно, я буду гадать, что $Customer
- это единственный объект, а не массив. Чтобы прокрутить свойства, начиная с Cust.
, имея возможность получить доступ как к имени свойства, так и по значению свойства, я бы использовал это. Настройте его с вашими потребностями:
$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.*
-properties и использовать его в своем 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
Что включает в себя код? Производит ли он правильные свойства и ценности? –
Вам нужно показать, как создаются объекты внутри '$ Customer' и как вы собираетесь использовать вывод. Образцы должны быть простыми и воспроизводимыми, и желаемый результат должен быть ясным. –
@MikeShepard $ Клиент отображает правильно Cust.Option1 = «Да», Cust.Option2 = «Нет» и т. Д. Я просто не знаю, сколько опций есть или их значения до времени исполнения. – westerdaled