2014-12-17 2 views
0

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

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

myModule addUserName "My Username" 

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

Вопрос: Как я могу получить команду powershell для принятия ввода как это?

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

Спасибо!

ответ

2

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

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