Как проверить параметры по длинному набору в PowerShell? - PullRequest
0 голосов
/ 22 февраля 2019

Я пишу скрипт, который будет принимать несколько параметров.Мне нужно проверить один параметр, который пользователь должен будет ввести.Я использую для [ValidateSet(...)] особенность Param блока.Однако мне нужно проверить этот параметр по очень длинному hash table.Поскольку моя хеш-таблица объявляется после Param, как мне проверить вводимые пользователем данные по ключам этой хеш-таблицы?

1 Ответ

0 голосов
/ 22 февраля 2019

Ansgar Wiechers справедливо указывает, что в вашем случае вам необходимо выполнить проверку аргумента внутри вашего сценария, учитывая, что значения для проверки еще не доступныв сценарии объявление (разбор) время ;используя блок скрипта (для простоты), чтобы продемонстрировать технику:

& { 
   param(
    [string] $SomeParam
   ) 

   # The hashtable to validate against.
   $hashTable = @{ foo = 1; bar = 2; baz = 3 }

   # Check the -SomeParam argument against the keys of $hashTable.
   if (-not $hashTable.ContainsKey($SomeParam)) { 
     Throw "Invalid -SomeParam argument: $SomeParam"
   }

   # ...

}  bar  # OK, because 'bar' is a key in $hashTable
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...