【发布时间】:2020-02-06 00:04:25
【问题描述】:
我试图弄清楚如何抛出异常或将其设置为默认值,一旦我没有在参数上设置任何值?
Function ConnectionStrings {
param(
[Parameter(
Mandatory = $false)]
[AllowNull()]
[AllowEmptyString()]
[string] $region
)
try{
if (!$regionHash.ContainsKey($region)){
$regionHash["US"]
} elseif (!$region) {
$regionHash["US"]
#$slave = $regionHash["US"].slave
#$master = $regionHash["US"].master
#$track = $regionHash["US"].tracking
} else {
$regionHash[$region]
#$slave = $regionHash[$region].slave
#$master = $regionHash[$region].master
#$track = $regionHash[$region].tracking
}
} catch {
Write-Warning -Message "OOPS!"
}
}
一旦我运行命令:ConnectionStrings -region 它应该抛出异常或设置为默认值。
需要您的指导,我刚接触 powershell。
谢谢。
编辑:不设置参数ConnectionStrings -region的值
【问题讨论】:
-
设置
Mandatory = $false -
@Theo 还是一样。
PS C:\Users\tinga\Documents\DevOps\DBAScripts\Modules> ConnectionStrings -region ConnectionStrings : Missing an argument for parameter 'region'. Specify a parameter of type 'System.String' and try again. At line:1 char:19 + ConnectionStrings -region + ~~~~~~~ + CategoryInfo : InvalidArgument: (:) [ConnectionStrings], ParameterBindingException + FullyQualifiedErrorId : MissingArgument,ConnectionStrings -
如果你不发送参数,那么你也不应该在调用中指定参数名称。删除
-region。 -
@Theo 感谢您的宝贵时间。因此,如果用户忘记了值,则此类问题无法解决。
标签: powershell powershell-2.0 powershell-3.0 powershell-4.0