【发布时间】:2019-03-27 12:54:09
【问题描述】:
我正在尝试创建一个函数,其参数 (Para2) 为字符串类型,并分配了值 ("ABC")。当仅调用参数时,应使用该值。如果参数带有值,则应使用该值。 但我不知道该怎么做。我卡住了,需要你的帮助。
我使用了 AllowEmptyString 和不同的 ValidationSets,但没有成功。这是我目前所拥有的:
Function MyFunction {
[CmdletBinding (
PositionalBinding = $false,
DefaultParameterSetName = "MySet1"
)]
Param (
[Parameter(ParameterSetName = "MySet1")]
[string]$Para1 = "Para1 default",
[Parameter(ParameterSetName = "MySet1")]
[string]$Para2 = "ABC"
)
Write-Output $Para2
}
MyFunction -Para2 "xxx"
调用像 'MyFunction -Para2 "xxx"' 这样的函数会返回 "xxx" - 这是意料之中的。 我喜欢找到一种方法来调用像“MyFunction -Para2”这样的函数,并希望看到“ABC”作为返回值。
有什么想法吗?
【问题讨论】:
-
不带任何参数直接调用..
-
通过将“-Para2”添加到您的调用中,您就是在告诉 PowerShell 您将提供该值。不带参数调用它以使用默认值(“Para1 default”和“ABC”)
标签: string powershell parameters return-value