我正在编写一个二进制PowerShell模块,它将取代另一个只输出文本的命令行工具。
我有一些遵循powershell动词指南的命令(例如Add-MyModuleUser -UserName "My Username"
)但是我想有一个重载命令,它接受这些对象的响应并将它们格式化为工具I&#39 ; m替换以下列格式接受输入:
myModule addUserName "My Username"
我的直觉说有一个名为Invoke-MyModule
的命令,其别名为myModule
,因此我可以调用Invoke-MyModule addUserName "My Username"
来调用Add-MyModuleUser
并将输出格式化为原始工具。
问题:如何获得powershell命令来接受这样的输入?
注意:我正在阅读看起来很有希望的ParameterSets,我想我可以将参数设置为string,因此字符串中的第一个单词为输入的其余参数设置ParameterSet。
谢谢!
答案 0 :(得分:2)
如果其余参数基于参数值而不是参数的存在,则可能需要使用"动态参数"。请参阅" get-help about_functions_advanced_parameters",动态参数内容即将结束。
如果使用一系列开关参数(例如-AddUserName)而不是值" addUserName",则参数可以正常。通过存在特定集合专用的参数来选择ParameterSets。