1
我有一组属性(深度:1)的对象。如何输出的对象为字符串的格式是这样的:如何输出一个PS对象作为自定义格式化的字符串
{property1_name:property1_value} {property2_name:property2_value} {property3_name...
(上面是单线,但属性值当然可以具有换行/回车等)
假设我不知道属性名称,他们可以改变。
谢谢!
我有一组属性(深度:1)的对象。如何输出的对象为字符串的格式是这样的:如何输出一个PS对象作为自定义格式化的字符串
{property1_name:property1_value} {property2_name:property2_value} {property3_name...
(上面是单线,但属性值当然可以具有换行/回车等)
假设我不知道属性名称,他们可以改变。
谢谢!
这实际上取决于你在浏览什么对象。我在一个csv上测试了它,并且它工作得很好,尽管你可能想为不同类型的对象做一些小的格式化。
$csv |
Get-Member |
Where-Object {$_.MemberType -eq "NoteProperty"} |
Select-Object -Property Name |
ForEach-Object {
"{" + $_.Name + " : " + $csv.($_.Name) + "}"
}
例如,取决于你所看到的,当你做$csv | Get-Member
,你可能要更改NoteProperty
到Property
或别的东西。这应该可能工作。
请注意,您还必须在两处更改变量的名称(当前为$csv
)。
我还可以对meta powershell是如何评论吗?我喜欢你如何做$ csv。$ _来通过一个变量来检索属性的属性。 –
如果用'-ExpandProperty Name'替换'-Property Name',则可以在'ForEach-Object'中使用'$ _'而不是'$ _。Name'。 – gms0ulman
@MaximeFranchot我有一个简单的“扁平”对象,主要是字符串属性。使用你的代码示例并将属性名称更改为属性我可以获取属性名称,但不能获取值。我显然已将$ csv更改为正确的变量名称。 – Alex