2012-02-03 74 views
4

誰能告訴我如何將參數添加到我的自定義C#的cmdlet這是一個Hashtable/StringDictionary,這樣我可以打電話給我的命令用它類似於這樣的方式:與哈希表/字典參數Powershell的C#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; } 

    ... 

還是別的什麼?

親切的問候

+0

「我能不能用......?」 - 是的,它看起來是正確的。 – 2012-02-04 06:25:43

+1

至少它肯定應該爲'Hashtable'工作。然後,您可以將值'@ {...}'從腳本傳遞到cmdlet。 – 2012-02-04 13:43:42

回答

4

您可以使用以下

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 

的funcitonality輸出是

清除進入

清除

添加

最大化

關閉

+0

「Hashtable」類位於System.Collections命名空間中,以防其他人查找。 – Nick 2016-06-23 13:14:37