Расширенная функция PowerShell для получения текущего ParameterSetName - PullRequest
7 голосов
/ 27 апреля 2010

В C # вы можете получить текущий ParameterSetName в ProcessRecord переопределении PowerShell Cmdlet с кодом, подобным этому:

 switch (ParameterSetName)
 {
      case FromUriParamSetName:
           loadFromUri();
           break;

      case FromFileParamSetName:
           loadFromFile();
           break;
 }

Я пытаюсь выяснить, как получить значение для ParameterSetName в командлете сценария (расширенная функция).

Ответы [ 2 ]

15 голосов
/ 27 апреля 2010

Использование $PsCmdlet.ParameterSetName:

switch ($PsCmdlet.ParameterSetName) {
    "FromFile_ParamSet" {

    }
    "FromUri_ParamSet" {

    }
}
5 голосов
/ 25 октября 2017

Как способ расширить этот удивительный ответ:

switch ($PsCmdlet.ParameterSetName) {
    "FromFile_ParamSet" {
    }
    "FromUri_ParamSet" {
    }
    "__AllParameterSets" { 
    }
}

__AllparameterSets является параметром по умолчанию в PS

...