Изменение свойств выходного объекта командлета powershell на основе набора входных параметров - PullRequest
0 голосов
/ 28 марта 2019

Я создал командлет PowerShell Get-MyName Он имеет 2 набора параметров

Набор параметров 1

Get-MyName (без параметров)

Вывод: -

First: John

Набор параметров 2

Get-MyName -Full $true

Вывод: -

First :John

Last :Gardener

Я хочу, чтобы командлет возвращал то же самоеОбъект для обоих наборов параметров.Разница лишь в том, что в первом наборе параметров не должно присутствовать свойство Last.

Есть ли способ сделать это?

1 Ответ

1 голос
/ 28 марта 2019

Все, что вам нужно сделать в вашем скрипте / функции, это вернуть объект
с различными свойствами в зависимости от вашего переключателя -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
...