接受c#PSCmdlet中的任意参数

时间:2014-10-23 15:57:09

标签: c# variables arguments pscmdlet

我已经编写了一大堆类,可以访问API并获取JSON。编译时,我得到了很好的命令,如get-host,get-version,get-app等。

每个cmdlet都使用-host或-app等参数。

我可以编写其中的160个,但我现在正在寻找一个可以接受任意参数和值的更通用的cmdlet。

从我所看到的情况来看,我无法在可以发出

的地方声明参数
get-info -app "appname"

get-info -host "hostname"

get-info -version "5.5"

除非我声明所有可能有数百个参数。此外,如果未声明参数,则会引发错误

  

Get-Info:找不到与参数名称匹配的参数' host'。

有没有办法我不能声明任何参数然后手动解析参数,或者c#中有什么东西可以自动解析参数列表然后将它们分配给适当命名的变量?

例如

get-info -host "hostname" -backup "backupid"

并且会自动设置变量host和backup吗?

1 个答案:

答案 0 :(得分:1)

将您的任意参数接受为HashTable

get-mydata @{ Host = "hostname"; version = "1.0" }

这就是大多数内置cmdlet处理任意KVP的方式。