PowerShell高级函数获取当前的ParameterSetName

Eri*_*ver 8 powershell cmdlet

在C#中,你可以得到当前ParameterSetNameProcessRecord一个PowerShell的覆盖Cmdlet使用如下代码:

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

      case FromFileParamSetName:
           loadFromFile();
           break;
 }
Run Code Online (Sandbox Code Playgroud)

我试图找出如何ParameterSetName在脚本cmdlet(高级函数)中获取值.

Eri*_*ver 15

用途$PsCmdlet.ParameterSetName:

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

    }
    "FromUri_ParamSet" {

    }
}
Run Code Online (Sandbox Code Playgroud)


Jos*_*ega 6

作为扩展此出色答案的一种方法:

switch ($PsCmdlet.ParameterSetName) {
    "FromFile_ParamSet" {
    }
    "FromUri_ParamSet" {
    }
    "__AllParameterSets" { 
    }
}
Run Code Online (Sandbox Code Playgroud)

__AllparameterSets是PS中的默认选项