如何将PS对象输出为自定义格式的字符串

时间:2017-07-27 02:27:17

标签: powershell powershell-v2.0

我有一组具有一组属性的对象(深度:1)。如何以如下格式将对象输出为字符串:

{property1_name:property1_value} {property2_name:property2_value} {property3_name...

(以上是单行,但属性值当然可以有换行符/回车等)

假设我不知道属性名称,他们可以改变。

谢谢!

1 个答案:

答案 0 :(得分:3)

它实际上取决于您正在浏览的对象。我在csv上对此进行了测试,虽然您可能希望对不同类型的对象进行一些次要格式化,但它的工作正常。

$csv |
    Get-Member |
    Where-Object {$_.MemberType -eq "NoteProperty"} |
    Select-Object -Property Name | 
    ForEach-Object {
        "{" + $_.Name + " : " + $csv.($_.Name) + "}"
    }

例如,根据您在执行$csv | Get-Member时看到的内容,您可能希望将NoteProperty更改为Property或其他内容。这应该可行。

请注意,您还必须在两个位置更改变量的名称(当前为$csv)。