function foo
{
param(
[parameter(Mandatory=$true)]
[ValidateSet('Test1','Test2','Test3')]
[String]$ChooseOne= 'Test1',
)
do xxxxxxxxxxxxxxxx
{
foo -ChooseOne Test9
Я работаю над функцией powershell с набором требуемых параметров. Множество Validate прекрасно работает, однако, как Validate Set есть .. если опция вводится, что не один из перечисленных вариантов .. Я получаю сообщение об ошибке, как показано ниже:Ошибка в PowerShell ValidateSet - ошибка Действие для установки переменной по умолчанию?
foo: Cannot validate argument on parameter 'ChooseOne'. The argument "Test9" does not belong to the set "Test1,Test2,Test3" specified by the ValidateSet attribute. Supply an argument that is in the set and then try the
command again.
At line:1 char:1
+ foo
+ ~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [foo], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,foo
Есть ли способ есть действие с ошибкой, чтобы установить поврежденную переменную в значение по умолчанию, которое было определено ранее?
Так что в этом случае было бы по умолчанию $ChooseOne
к «Test1
»
Существует множество расширенных функциональных примеров, в которых используются параметры и их различные варианты. Пример: http://stackoverflow.com/questions/39154887/set-a-default-value-for-variable-in-powershell, а также [ссылка TechNet] (https://social.technet.microsoft.com/wiki/ содержимое/статьи/15994.powershell-advanced-function-parameter-attributes.aspx) – user4317867