Как в PowerShell получить значение свойства объекта, указав его имя (строку)? Я хочу что-то вроде следующего:
$obj = get-something
# View the object's members:
$obj | gm
# I could retrieve a property by doing so:
write-host $obj.SomeProp
# But for many purposes, I would really want to:
write-host $obj | Get-PropertyByName "SomeProp"
Есть ли что-то похожее на Get-PropertyByName в PowerShell?
powershell
КЛС
источник
источник
select -expand "SomeProp"
если вы хотите значение.select "SomeProp"
возвращает customobject со свойством SomeProp, а затем возвращается к шагу 1.$obj."SomeProp"
вwrite-host
?$obj.($propName)
тоже работает. (Скобки не обязательны, но для меня это выглядит очень странно без них.)$propName
хранящийся в объекте,$Headers.PropertyName
скобки обязательны$obj.($Headers.PropertyName)
.Расширяя @aquinas:
или
или
Я сделал эти предложения для тех, кто, возможно, просто ищет однострочную команду для получения некоторой информации, и хотел включить реальный пример.
При управлении Office 365 через PowerShell я использовал пример для получения всех пользователей / групп, которые были добавлены в список «BookInPolicy»:
Простое использование «Select BookInPolicy» привело к отключению нескольких участников, поэтому спасибо за эту информацию!
источник
Вы можете получить свойство по имени, используя
Select-Object
командлет и указав имя (имена) свойств, которые вас интересуют. Обратите внимание, что это не просто возвращает необработанное значение для этого свойства; вместо этого вы получаете что-то, что все еще ведет себя как объект.Чтобы использовать значение этого свойства, вам все равно необходимо определить, какое свойство вам нужно, даже если есть только одно свойство:
В соответствии с другими ответами здесь, если вы хотите использовать одно свойство в строке, вам необходимо оценить выражение (заключить его в скобки) и префикс со знаком доллара ($), чтобы динамически объявить выражение как переменную для вставки в строку:
Совершенно верно, другие ответили на этот вопрос, порекомендовав
-ExpandProperty
параметр дляSelect-Object
командлета. Это позволяет избежать головной боли, возвращая значение указанного свойства, но вы захотите использовать разные подходы в разных сценариях.PowerShell переменные
источник
Попробуй это :
источник
The value of Prop is Value
а затемThe value of NonexistentProp is
Вот альтернативный способ получить значение свойства объекта:
источник
источник