【问题标题】:Powershell C# Cmdlet with Hashtable/Dictionary parameters带有哈希表/字典参数的 Powershell C# Cmdlet
【发布时间】:2012-02-26 12:38:05
【问题描述】:

谁能告诉我如何向我的自定义 C# cmdlet 添加一个参数,它是一个 Hashtable/StringDictionary,以便我可以以类似于以下方式调用我的 cmdlet:

 CustomCmdlet -File $someFilePath `
              -StringDictionary/HashtableParameter @{
                            "name1"="value1"
                            "name2"="value2"
                            "name3"="value3"
                            ...
                       }

我根本找不到任何可以清楚简单地解释如何执行此操作的文档/示例,或者它甚至可能用于自定义 cmdlet。

我可以使用吗:

    [Parameter(Mandatory = false, Position = 9)]
    public Dictionary<string,string> FieldValues { get; set; }

    [Parameter(Mandatory = false, Position = 9)]
    public HashTable FieldValues { get; set; }

    ...

还是别的什么?

亲切的问候

【问题讨论】:

  • "我可以使用...吗?" - 是的,它看起来是正确的。
  • 至少它绝对应该适用于Hashtable。然后,您可以将值 @{...} 从脚本传递到 cmdlet。

标签: c# powershell parameters hashtable cmdlet


【解决方案1】:

你可以使用下面的

public Hashtable[] SearchCriteria { get; set; }

具有类似的功能

Start-Process calc -PassThru | Get-UIAWindow | Get-UIAButton -SearchCriteria @{automationid="13*";name="[3-5]"},@{name="c*"},@{name="a*"},@{isenabled="false"} | Read-UIAControlName

输出是

4

清除条目

5

清除

3

添加

最大化

关闭

【讨论】:

  • Hashtable 类位于 System.Collections 命名空间中,以防其他人正在查看。
猜你喜欢
  • 1970-01-01
  • 2016-03-31
  • 2010-11-26
  • 2018-07-18
  • 1970-01-01
  • 2018-06-06
  • 2013-11-09
  • 2016-08-12
  • 1970-01-01
相关资源
最近更新 更多