当前位置: 首页 > 知识库问答 >
问题:

如何通过属性名获取对象的属性值?

韩阳飙
2023-03-14

在 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"

是否有类似于“获取属性名称”的内容?

共有3个答案

鞠边浩
2023-03-14

您可以使用<code>Select Object

[PS]> $property = (Get-Process)[0] | Select-Object -Property Name

[PS]> $property

Name
----
armsvc

[PS]> $property.GetType().FullName
System.Management.Automation.PSCustomObject

为了使用该属性的值,您仍然需要确定要使用的属性,即使只有一个属性:

[PS]> $property.Name
armsvc

[PS]> $property -eq "armsvc"
False

[PS]> $property.Name -eq "armsvc"
True

[PS]> $property.Name.GetType().FullName
System.String

根据此处的其他答案,如果要在字符串中使用单个属性,则需要计算表达式(将其括起来)并用美元符号 ($) 作为前缀,以将表达式动态声明为要插入到字符串中的变量:

[PS]> "The first process in the list is: $($property.Name)"
The first process in the list is: armsvc

非常正确的是,其他人通过推荐选择对象cmdlet的-expandProperty参数来回答这个问题。这通过返回指定属性的值来绕过一些令人头疼的问题,但是您需要在不同的场景中使用不同的方法。

<代码>-扩展属性

指定要选择的属性,并指示应尝试扩展该属性

https://technet.microsoft.com/en-us/library/hh849895.aspx

[PS]> (Get-Process)[0] | Select-Object -ExpandProperty Name
armsvc

powershell变量

黄骏喆
2023-03-14

扩展@aquinas:

Get-something | select -ExpandProperty PropertyName

Get-something | select -expand PropertyName

Get-something | select -exp PropertyName

我提出这些建议是为了那些可能只希望使用一行命令来获取一些信息并希望包含一个真实示例的人。

在通过PowerShell管理Office 365的过程中,我使用了一个例子来获取已经添加到“BookInPolicy”列表中的所有用户/组:

Get-CalendarProcessing conferenceroom@example.com | Select -expand BookInPolicy

仅仅使用“选择BookInPolicy”就切断了几个成员,所以谢谢你的信息!

姜弘化
2023-03-14

当然

write-host ($obj | Select -ExpandProperty "SomeProp")

或者就此而言:

$obj."SomeProp"
 类似资料:
  • 问题内容: 我想知道JavaScript中是否有任何方法可以像这样遍历对象。 但是这样获取每个属性的名称。 我似乎在Google上找不到类似的东西。他们说与他们一起传递变量的名称,但这不是我要实现的选择。 谢谢你的尽心帮助。 问题答案: 使用Object.keys(): 给您一个属于输入对象的属性名称数组。

  • 问题内容: 这个问题很简单,但是由于我是python的新手,所以我从php过来了,因此遇到了一些错误。 我有以下简单的课程: 在PHP中,我可以执行以下操作: 我该如何在python中做到这一点? 问题答案: 要访问对象的字段或方法,请使用dot : 如果将在运行时定义字段名称,请使用内置函数:

  • 本文向大家介绍C#通过属性名字符串获取、设置对象属性值操作示例,包括了C#通过属性名字符串获取、设置对象属性值操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#通过属性名字符串获取、设置对象属性值操作.分享给大家供大家参考,具体如下: #通过反射获取对象属性值并设置属性值 0、定义一个类 1、通过属性名(字符串)获取对象属性值 2、通过属性名(字符串)设置对象属性值 #获取对象的

  • 问题内容: 例如,我有: 然后,例如,我要通过对该对象进行 排序/反转。然后我想得到这样的东西: 现在,我想知道具有属性的对象的索引,以获取属性标记的值。 我该如何解决这个问题? 问题答案: 正如其他答案所暗示的那样,遍历数组可能是最好的方法。但是我会把它放在它自己的函数中,并使它更抽象一些: 这样,您不仅可以找到包含“ John”的一个,而且可以找到包含令牌“ 312312”的一个: 编辑: 未

  • 使用此答案中的代码:获取Tkinter上的顶级级别列表: 我这样称呼它: 输出如下: 它正确地显示了两个顶级。首先是一个音乐图书馆的树状视图。第二个是目前播放的四帧歌曲: 相册艺术品的图像 当前播放歌曲的详细信息(艺人、专辑、曲目等) 按钮(关闭、暂停/播放、洗牌、下一步、上一步等) 树形纪年(最近播放,正在播放,下一个) 如何转换机器语言引用: 转换成人类可读的格式,例如: 这是一个x宽y高的窗

  • 本文向大家介绍Python通过getattr函数获取对象的属性值,包括了Python通过getattr函数获取对象的属性值的使用技巧和注意事项,需要的朋友参考一下 英文文档: getattr(object, name[, default]) Return the value of the named attribute of object. name must be a string. If th