[英]Parameter sets - ensure parameters exist
我正在嘗試使用參數集來復制此功能:
if (($hostName) -or ($databaseName) -and (!$databasePassword)) {
throw "If hostName or databaseName specified, you must use databasePassword parameter."
}
到目前為止我所擁有的簡單示例:
[Parameter(Mandatory=$false, ParameterSetName="Test")]
[string]$hostName,
[Parameter(Mandatory=$false, ParameterSetName="Test")]
[string]$databaseName,
[Parameter(Mandatory=$false, ParameterSetName="Test")]
[string]$databasePassword
這是行不通的。 例如,我可以提供不帶$databasePassword
$hostName
或不帶$databasePassword
$dataBasename
,然后函數運行。
我想念什么?
將databasePassword
設置為強制性嗎?
[Parameter(Mandatory=$true, ParameterSetName="Test")]
[string]$databasePassword
創建兩個參數集,在第一個中使$Hostname
必需,在第一個中使$DatabaseName
可選,在另一個中使$DatabasePassword
必需,在這兩者中使$DatabasePassword
必需。
[CmdletBinding(DefaultParameterSetName='host')]
Param(
[Parameter(ParameterSetName='host', Mandatory=$true)]
[string]$Hostname,
[Parameter(ParameterSetName='host', Mandatory=$false)]
[Parameter(ParameterSetName='dbname', Mandatory=$true)]
[string]$DatabaseName,
[Parameter(ParameterSetName='host', Mandatory=$true)]
[Parameter(ParameterSetName='dbname', Mandatory=$true)]
[string]$DatabasePassword
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.