13

In C# you can get the current ParameterSetName in the ProcessRecord override of a PowerShell Cmdlet with code like this:

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

      case FromFileParamSetName:
           loadFromFile();
           break;
 }

I'm trying to figure out how I can get the value for ParameterSetName in a script cmdlet (Advanced Function).

Eric Schoonover
  • 47,184
  • 49
  • 157
  • 202

2 Answers2

19

Use $PsCmdlet.ParameterSetName:

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

    }
    "FromUri_ParamSet" {

    }
}
Eric Schoonover
  • 47,184
  • 49
  • 157
  • 202
14

As a way to expand this awesome answer:

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

The __AllparameterSets is the default option in PS

Eric Schoonover
  • 47,184
  • 49
  • 157
  • 202
Jose Ortega
  • 1,002
  • 13
  • 23