Форматирование команд двоичного модуля PowerShell

Я пишу двоичный модуль PowerShell, который заменит другой инструмент командной строки, который просто выводит текст.

У меня есть несколько команд, которые следуют руководству по глаголам PowerShell (например, Add-MyModuleUser -UserName "My Username"), но я хотел бы также иметь перегруженную команду, которая принимает ответы объекта и форматирует их, как инструмент, который я заменяю, который принимает ввод в следующем формат:

myModule addUserName "My Username"

Мой инстинкт подсказывает, что нужно иметь команду с именем Invoke-MyModule с псевдонимом myModule, чтобы я мог вызвать Invoke-MyModule addUserName "My Username", который вызовет Add-MyModuleUser и отформатирует этот вывод, как в исходном инструменте.

Вопрос: Как я могу заставить команду PowerShell принимать такие данные?

Примечание: я читал о ParameterSets, которые кажутся многообещающими, я думал, что могу объявить набор параметров как строку, поэтому первое слово в строке устанавливает ParameterSet для остальных вводимых параметров.

Спасибо!


person jonfriesen    schedule 17.12.2014    source источник


Ответы (1)


Если остальные параметры основаны на значении параметра, а не на его наличии, вам, вероятно, потребуется использовать «Динамические параметры». См. «Get-help about_functions_advanced_parameters», и содержимое динамических параметров ориентировано на конец.

Наборы параметров были бы хороши, если бы вы использовали серию параметров-переключателей (например, -AddUserName), а не значение «addUserName». ParameterSets выбираются по наличию параметров, которые являются исключительными для определенного набора.

person Mike Shepard    schedule 17.12.2014