接受c#PSCmdlet中的任意参数
本文关键字:任意 参数 c#PSCmdlet 接受 | 更新日期: 2023-09-27 18:27:31
我编写了一组类,它们可以访问API并获得JSON。当编译时,我会得到一些不错的命令,比如获取主机、获取版本、获取应用程序等。
每个cmdlet都接受一个参数,如-host或-app。
我已经有大约160个这样的东西可以写了,但我现在想写一个更通用的cmdlet,可以接受任意的参数和值。
据我所见,我不能在可以发布的地方声明参数
get-info -app "appname"
或
get-info -host "hostname"
或
get-info -version "5.5"
除非我声明所有可能有数百个的参数。此外,如果参数没有声明,它会抛出一个漂亮的错误
获取信息:找不到与参数名称"host"匹配的参数。
有没有一种方法可以不声明任何参数,然后手动解析参数,或者c#中有没有一个方法可以自动解析参数列表,然后将它们分配给适当命名的变量?
例如
get-info -host "hostname" -backup "backupid"
主机和备份变量会自动设置吗?
接受任意参数作为HashTable
:
get-mydata @{ Host = "hostname"; version = "1.0" }
这就是大多数内置cmdlet处理任意KVP的方式。