Список значений параметров PowerShell
Я пытался найти ответ, но я думаю, что наличие слов PowerShell и параметра вместе в наборе ключевых слов не облегчает поиск
мой вопрос в том, что я пишу функцию, и я предоставил параметр, но параметр должен быть одним из списка определенных строк.
есть ли способ, которым я могу предоставить эти строки в скрипте, чтобы, если я наберу " myfunction-parameter .."Я могу использовать Tab completion для параметра ценность?
2 ответов
Если вы находитесь на PowerShell V2, вы можете использовать [ValidateSet()]
атрибута, например:
param(
[Parameter()]
[ValidateSet('foo','bar','baz')]
[string[]]
$Item
)
см. раздел справки, выполнив:
man about_functions_advanced_parameters
можно использовать [ValidateSet()]
Как показывает Кит, но это не очень хорошо работает с большим количеством возможных значений (заполнение списка при нажатии Tab становится очень медленным). Другой способ получения завершения вкладки-сделать пользовательское перечисление:
http://blogs.msdn.com/b/powershell/archive/2008/06/03/v2-custom-enums.aspx
и приведите параметр как этот тип перечисления. Это накладывает некоторые ограничения на набор символов, который разрешен в вашем строки (в основном только буквы и цифры), но он будет заполнять список завершения вкладки намного быстрее, если это относительно большой список значений.