0

我正在编写一个二进制 powershell 模块,它将替换另一个只输出文本的命令行工具。

我有一些遵循 powershell 动词指南的命令(例如Add-MyModuleUser -UserName "My Username"),但我还想有一个重载命令,它接受这些对象的响应并将它们格式化,就像我要替换的工具一样,它接受以下格式的输入:

myModule addUserName "My Username"

我的直觉告诉我有一个Invoke-MyModule使用别名 to调用的命令myModule,所以我可以调用Invoke-MyModule addUserName "My Username"which 将调用Add-MyModuleUser和格式化输出,就像原始工具一样。

问题:如何让 powershell 命令接受这样的输入?

注意:我正在阅读看起来很有希望的 ParameterSets,我想我可以将参数集声明为字符串,因此字符串中的第一个单词为输入的其余参数设置 ParameterSet。

谢谢!

4

1 回答 1

2

如果其余参数是基于参数的值而不是参数的存在,您可能需要使用“动态参数”。见“get-help about_functions_advanced_pa​​rameters ”,动态参数内容接近尾声。

如果您使用一系列开关参数(例如,-AddUserName)而不是值“addUserName”,则参数集会很好。ParameterSets 是通过特定集合独有的参数的存在来选择的。

于 2014-12-17T03:16:53.537 回答