PowerShell-自定义函数-位置参数:Position

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PowerShell-自定义函数-位置参数:Position相关的知识,希望对你有一定的参考价值。

这一篇我们来讲一下位置参数.什么是位置参数呢?直白点说就是只要你按照一定的顺序输入值,而不需要特别去把参数写出来.


例如我们用的Get-Service BITS 就直接可以获取到BITS服务的信息,而完整的写法应该是:Get-Service -Name BITS .这种效果我们就可以使用位置参数来做到.


因为Get-Service的第1位置参数是-Name,所以我们把-Name省略掉,直接填写服务名BITS也能正确的运行.


使用位置参数可以减少我们重复输入参数名的代码输入量,加快我们操作的速度.

 

目标

1.输入姓名和年龄后,直接在显示 某某 今年 多少 岁 .

2.强制使用Name参数.

3.指定Name为第1位置参数,Age为第2位置参数.

 

示例:

Function Test-Function {
    Param      
   (       
   [parameter(
    Mandatory = $true,
    Position = 0
    )]
    $Name,
   [parameter(
   Position = 1
   )]
    $Age = "18"
    )
    
    Write-Host "$Name 今年 $Age 岁." 
}

 

说明:

与上篇文章中相比,我们将Name的位置指定为第1个,给Age参数也加上了位置参数并指定为第2个.这里注意一下是顺序是从0开始.0代表第1个,1代表第二个,依此类推.

 

运行结果:

技术分享

 

可以看到我并没有指定彪锅和20分别由哪个参数来接受,但PowerShell根据位置参数正确的将他们赋予至我们希望的参数之中.


但还有一个问题,也许我刚刚写的时候我还能够记得,Name是第1个参数,Age是第2个参数.但过一段时间以后,不至于要去翻代码看才知道吧?那太麻烦了.


这个时候就可以祭出Get-Help这个大杀器了.PowerShell会自动的帮我们生成一些简单的帮助信息,如下:

技术分享

图中我们可以看到在参数的帮助信息中,PowerShell为我们列出了第个参数的位置信息.Name位置是0代表是第1个参数.Age位置是1代码是第2个参数.上一篇所讲的的强制参数在这里也有显示.


至于其他的参数设置,后续会继续为大家进行说明.(如果我能坚持写完这个系列不烂尾的话...)


好了,下一篇会为大家更新一个重要的功能:如何让Function支持从管道"|"接受数据并进行处理.

本文出自 “彪锅” 博客,谢绝转载!

以上是关于PowerShell-自定义函数-位置参数:Position的主要内容,如果未能解决你的问题,请参考以下文章

PowerShell-自定义函数-强制参数:Mandatory

MySQL-LOCATE()函数

substr()函数

powershell powershell获取函数的定义。我用它来获取内部自定义函数和自定义模块的定义

PowerShell-自定义函数 第一个自定义Function

mysql 常用自定义函数解析