Reflection Powershell是否有一个;“评估”;相等的是否有更好的方法查看属性和值列表?
我正在做一点Powershell脚本编写(这是第一次)来查看Sharepoint网站中的一些内容,我想做的是浏览对象的属性列表,并以“property name=value”的格式输出它们的值 现在,我可以使用以下内容找到元素列表:Reflection Powershell是否有一个;“评估”;相等的是否有更好的方法查看属性和值列表?,reflection,powershell,Reflection,Powershell,我正在做一点Powershell脚本编写(这是第一次)来查看Sharepoint网站中的一些内容,我想做的是浏览对象的属性列表,并以“property name=value”的格式输出它们的值 现在,我可以使用以下内容找到元素列表: $myObject | get-member -membertype property 它将以非常清晰易读的方式返回所有属性的列表。但我需要的是为这些属性找到一个值 在一些脚本语言中,我可以有一种eval($myObject.$propertyName)调用——我
$myObject | get-member -membertype property
它将以非常清晰易读的方式返回所有属性的列表。但我需要的是为这些属性找到一个值
在一些脚本语言中,我可以有一种eval($myObject.$propertyName)调用——我从get成员输出中提取了$propertyName——并让它将字符串作为代码进行计算,这对于我需要的快速而肮脏的解决方案来说是很好的
这是否存在于Powershell中,或者是否有更方便的方法?我应该改用反射吗?要获取对象属性的值,可以使用几种方法 首先,可以使用Select对象并使用-Property参数指定要返回的属性值。其显示方式将取决于指定的特性数量和对象类型。如果需要所有属性,可以使用通配符(*)获取所有属性 范例-
$myobject | Select-Object -Property name, length
$myobject | Select-Object -Property *
$myobject | Format-List -Property *
$myobject | Format-Table -Property name, length
您还可以使用“格式列表”或“格式表”以类似的方式控制输出的格式
范例-
$myobject | Select-Object -Property name, length
$myobject | Select-Object -Property *
$myobject | Format-List -Property *
$myobject | Format-Table -Property name, length
最后,要进行“eval”样式的输出,只需键入
$myobject."$propertyname"
属性的值将被返回。对于您来说,最好的选择是
格式自定义
get-date | Format-Custom -Depth 1 -Property *
get-childitem . | select-object -first 1 | Format-Custom -Depth 1 -Property *
它可能太冗长,但很有用;)
或者您可以真正使用Get Member
$obj = get-date
$obj |
gm -MemberType *property |
% { write-host ('{0,-12} = {1}' -f $_.Name, $obj.($_.Name)) }
为此,我建议使用格式列表-强制,例如:
Get-Process | Format-List * -Force
-强制是可选的,但有时PowerShell会隐藏我真正想看到的属性。我认为您甚至可能会丢失最后一段代码中的引号:$myobject.$propertyname它看起来很奇怪,但很有效。