首页 > 解决方案 > PowerShell - PSObject 属性成为集合,并将下一个属性的名称附加到集合中

问题描述

我正在尝试在 PowerShell 中创建一个具有四个值的简单对象。一个布尔值、两个字符串和一个整数。问题是,如果我调用这个函数:

function New-ResultObject($Status, $Function, $Message, $Priority)
    {   

         return New-Object psobject -property  @{
                                                Status = $Status; `
                                                Function = $Function; `
                                                Message = $Message; `
                                                Priority = $Priority
                                                }

    }

这样调用:

$object= New-ResultObject -Status $false,`
                                    -Function "FunctionName",`
                                    -Message "This is the message",`
                                    -Priority 2

然后做一个$object | select *我得到这个结果:

$object.Function = {FunctionName, -Status}
$object.Status = {False, -Function} 
$object.Priority = 2
$object.Message = {This is the message, -Priority}

而不是我所期望的:

$object.Function = FunctionName
$object.Status = False 
$object.Priority = 2
$object.Message = This is the message

我已经尝试对每个属性在其自己的行上执行 Add-Member 方法,但它仍然会产生相同的对象,其中属性名称作为第二个值添加到初始属性。我错过了什么?

标签: powershell

解决方案


谢谢道格·毛雷尔。如果您想发布答案,我可以接受。否则,这就是问题所在,多个参数不需要逗号,并且导致参数标记作为多个部分传递给松散类型的函数参数。

这是一个工作示例:

$object= New-ResultObject -Status $false `
                                -Function "FunctionName" `
                                -Message "This is the message" `
                                -Priority 2

推荐阅读