0

我编写了一堆类,它们可以访问 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"

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

获取信息:找不到与参数名称“主机”匹配的参数。

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

例如

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

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

4

1 回答 1

1

接受您的任意参数作为HashTable

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

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

于 2014-10-23T16:18:31.260 回答