我创建了一个PowerShell cmdlet
Get-MyName
有2个参数集
Get-MyName
(无参数)
输出:-
First: John
Get-MyName -Full $true
输出:-
First :John
Last :Gardener
我希望cmdlet为两个参数集返回相同的对象。唯一的不同是,在“第一个”参数集中,属性Last
不应存在。
有什么办法可以做到吗?
答案 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