根据输入参数集更改Powershell cmdlet的输出对象的属性

时间:2019-03-28 06:21:36

标签: powershell cmdlet

我创建了一个PowerShell cmdlet Get-MyName有2个参数集

参数集1

Get-MyName(无参数)

输出:-

First: John

参数集2

Get-MyName -Full $true

输出:-

First :John

Last :Gardener

我希望cmdlet为两个参数集返回相同的对象。唯一的不同是,在“第一个”参数集中,属性Last不应存在。

有什么办法可以做到吗?

1 个答案:

答案 0 :(得分:1)

您需要在脚本/函数中做的就是返回对象
具有不同的属性,具体取决于您的开关-Full

function Get-MyName {
   param(
     [switch]$Full
   )

    $Object = [PSCustomObject]@{First='John';Last='Gardener'}

    if($Full){
        return $Object
    } else {
        return ($Object | Select-Object -Property * -ExcludeProperty Last)
    }
}

示例输出:

PoSh> Get-MyName

First
-----
John

PoSh> Get-MyName -Full

First Last
----- ----
John  Gardener