Командлет Powershell C # с параметрами Hashtable / Dictionary - PullRequest
4 голосов
/ 04 февраля 2012

Может кто-нибудь сказать мне, как добавить параметр в мои пользовательские командлеты C #, который является Hashtable / StringDictionary, чтобы я мог вызывать мой командлет способом, который похож на это:

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

Я просто не могу найти какую-либо документацию / пример, который бы ясно и просто объяснял, как это сделать, или, если это вообще возможно, для пользовательских командлетов.

Могу ли я просто использовать:

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

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

    ...

Или что-то еще?

С уважением

1 Ответ

5 голосов
/ 02 октября 2012

Вы можете использовать следующие

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

Добавить

Увеличить

Закрыть

...