PowerShell函数参数设置成自动识别数据类型的例子_PowerShell

本文介绍PowerShell自定义函数中使用参数集时,怎么设置系统自动识别参数的数据类型。

识别参数类型的一个好处就是,在使用参数集时,不需要每次都指定参数名称了。

请看下面这个Test-Binding函数。这个PowerShell函数在设置参数集的时候,为参数集中的第一个参数设置了数据类型,这样在调用函数时,就可以自动判断一个参数值它应该赋给哪个参数了。

复制代码 代码如下:

function Test-Binding {
    [CmdletBinding(DefaultParameterSetName='Name')]
    param(
        [Parameter(ParameterSetName='ID', Position=0, Mandatory=$true)]
        [Int]
        $id,
        [Parameter(ParameterSetName='Name', Position=0, Mandatory=$true)]
        [String]
        $name
    )
    $set = $PSCmdlet.ParameterSetName
    “You selected $set parameter set”
    if ($set -eq ‘ID') {
        “The numeric ID is $id”
    } else {
        “You entered $name as a name”
    }
}

注意函数中参数$id上面的[int]和参数$name上面的[String]。有这了这样的函数定义,那我们在调用时就方便了,如果传一个字符串给它,它会把这个参数当作是$name,而传一个数字给它,这个参数会被当作是$id。且看如下调用函数的示例。

复制代码 代码如下:

PS> Test-Binding -Name hallo
You selected Name parameter set
You entered hallo as a name
PS> Test-Binding -Id 12
You selected ID parameter set
The numeric ID is 12
PS> Test-Binding hallo
You selected Name parameter set
You entered hallo as a name
PS> Test-Binding 12
You selected ID parameter set
The numeric ID is 12

上面一共做了4次调用,前两次调用都指定了参数名,没有什么好说的。后面两次都没有指定参数名称,但执行的结果跟前两次一模一样,这表示PowerShell函数自动识别了输入参数要调用的哪个参数名称。

关于PowerShell函数参数集自动识别参数数据类型,本文就介绍这么多,希望对您有所帮助,谢谢!

时间: 2024-09-19 12:27:56

PowerShell函数参数设置成自动识别数据类型的例子_PowerShell的相关文章

PowerShell函数参数设置为即可选又必选的方法_PowerShell

本文介绍PowerShell自定义函数中使用参数集时,可以将同一个参数既设置为可选,又设置为必选. 好吧,小编承认,这个话题有点无聊,但确实还是有点有趣,不妨看一看啦. 在PowerShell中,我们有可能有这样的需求,如果只需要输入某个参数时,这个参数是可选的.但如果还要输入别的参数,那这个参数就变成必选的了.那么这种需求如何来满足呢?那就是本文的意义所在了. 复制代码 代码如下: function Connect-Somewhere {     [CmdletBinding(DefaultP

PowerShell函数参数指定数据类型实例_PowerShell

本文介绍在PowerShell创建自定义函数时,为必选参数设置强类型有什么好处,应该如何设置. 为了提高必选参数的安全性,PowerShell函数定义的最佳实践告诉我们,要为必选参数设置强类型.这是为什么呢,我们来看一个例子. 复制代码 代码如下: function Test-Me {     param     (         [Parameter(Mandatory=$true, HelpMessage='Enter number of EUROs!')]         $Euro  

PowerShell中给函数参数设置帮助信息的例子_PowerShell

本文介绍在PowerShell创建自定义函数时,如何为必选参数设置帮助信息. 下面这段代码,我们创建了一个test-function的函数.这个函数有一个参数p,它是必选参数.更进一步,我们为这个参数$p设置了一个helpMessage属性,这个属性的意思就是为这个必须参数提供帮助信息.因为是必选参数,所以在不输入值的情况下,函数是不会执行,而会提示为参数输入值的.如果用户不知道应该为这个参数输入什么值,那么这个HelpMessage有可能帮到忙. 复制代码 代码如下: PS C:\Users\

PowerShell函数参数用星号隐藏的方法_PowerShell

本文介绍在PowerShell中创建函数时,如何让函数的参数输入值的时候自动变成星号. 什么叫自动变成星号呢?举个例子,我们在登录一个邮箱时,输入用户时看到的是明文的,但我们在输入密码时,看到的是一个个增加的星号.在使用PowerShell自定义函数时,如何设置才能让输入密码之类的参数时,自己用星号掩盖呢?且往下看. 复制代码 代码如下: function Test-Password {     param     (     [Parameter(Mandatory=$true)]     $

PowerShell函数参数使用智能提示功能例子_PowerShell

本文介绍在自定义PowerShell函数时,如何设置函数可以智能提示参数值.参数值的智能提示这个功能是在PowerShell 3.0中出现的新功能. 在PowerShell 3.0版本中,出现了一项新的功能,那就是参数值的智能提示.当然,不是随便在哪里都会智能提示参数值,而是只能在ISE中.当然,所谓的ISE就是PowerShell自带的一个集成开发环境. 那么,我们自己在开发一个PowerShell函数时,我们应该怎么设置才能让我们的函数在ISE中也能智能提示参数的值呢?看看下面这个例子. 复

ParseInt函数参数设置介绍

 经常用ParseInt函数转换字符串为int数值,ParseInt函数有两个参数可以设置,其中第二个参数可以缺省 我们经常用ParseInt函数转换字符串为int数值,ParseInt函数有两个参数可以设置,其中第二个参数可以缺省.   ParseInt("字符串",使用的进制)   var num1=ParseInt("10",2)//2   var num1=ParseInt("10",8)//8   var num1=ParseInt(&

ParseInt函数参数设置介绍_基础知识

我们经常用ParseInt函数转换字符串为int数值,ParseInt函数有两个参数可以设置,其中第二个参数可以缺省. ParseInt("字符串",使用的进制) var num1=ParseInt("10",2)//2 var num1=ParseInt("10",8)//8 var num1=ParseInt("10",10)//10 var num1=ParseInt("10",16)//16 进制参

js函数参数设置默认值的一种变通实现方法_javascript技巧

php有个很方便的用法是在定义函数时可以直接给参数设默认值,如: 复制代码 代码如下: function simue ($a=1,$b=2){ return $a+$b; } echo simue(); //输出3 echo simue(10); //输出12 echo simue(10,20); //输出30 但js却不能这么定义,如果写function simue(a=1,b=2){}会提示缺少对象. js函数中有个储存参数的数组arguments ,所有函数获得的参数会被编译器挨个保存到这

PowerShell中使用Get-Alias命令获取cmdlet别名例子_PowerShell

PowerShell中为了与原来的cmd命令保持兼容,特别为很多cmdlet设置了别名.这些别名跟cmd命令是同名的,但它代表着一个PowerShell中的cmdlet.比如dir这个cmd命令,它用于列出一个目录下的子文件夹和文件,在PowerShell有一个Get-ChildItem的cmdlet,它的作用也是列出一个目录下的子文件夹和文件,于是微软就给Get-ChildItem设置了一别名叫dir. 在PowerShell中,使用Get-Alias这个cmdlet,可以列出所有的别名,以及