我想在PowerShell函数中声明一个参数,让我可以执行以下操作:
对于前3个要求,我可以使用一个简单的[ValidateSet('this', 'that', 'another')]
参数来执行此操作:
My-Command -MyParameter this, that
例如,假设我有以下功能:
function Resolve-ProtocolToDefaultPort {
[Cmdletbinding()]
param (
[Parameter(ParameterSetName='ByProtocol', Mandatory)]
[ValidateSet('FTP', 'FTPS', 'SFTP', 'HTTP', 'HTTPS')]
[string[]] $Protocol
)
foreach ($curProtocol in $Protocol) {
switch($curProtocol) {
{ 'HTTP' -like $_ } { return 80 }
{ 'HTTPS' -like $_ } { return 443 }
# ...
}
}
}
我如何支持这个用例:
PS > Resolve-ProtocolToDefaultPort -Protocol HTT*
80
443
同时保留制表符完成和参数验证?