PowerShell函数参数定义


关键词

PowerShell函数 定义参数

摘要

本文介绍PowerShell自定义函数定义参数的两种方法,一种是将参数列表放到函数名之后,就跟其它语言定义函数参数一样;另一种则是PowerShell独有的方式,那就是使用param关键词。

先来看看第一种定义参数的方式——将参数列表放到函数名之后

举个例子先看看:

function Test-Function($参数名1='默认参数值1', $参数名2='默认参数值2')
{
    Write-Host "参数1=$参数名1,参数2=$参数名2";
}

这种方式比较简单直接,而且有点像C#和PHP,可以直接赋默认值。

微软告诉我们,这种将参数定义的列表直接放到函数名后,不是最佳的做法。PowerShell在内部处理的时候,还是会进一步的将上面定义的参数格式转换成如下的官方语法:

function Test-Function
{
    param($参数名1='默认参数值1', $参数名2='默认参数值2')
    Write-Host "参数1=$参数名1,参数2=$参数名2";
}

大家看出区别来了吧,直接将函数名之后的参数列表,连同括号一起拿掉。然后在函数体(大括号之内)来一段param关键词开始的参数定义代码,把参数列表就放到这儿了。其它的不变。

不管上面哪种定义参数列表的方式,运行的结果都是一样的。

顺便说一句,因为上面定义了参数的默认值,所以在调用的时候可以为参数赋值,可以不赋值。但赋值时一定要指明参数的名称。如:

PS> Test-Function
参数1=默认参数值1,参数2=默认参数值2

PS> Test-Function -参数1 "p1"
参数1=p1,参数2=默认参数值2

关于PowerShell函数参数定义,本文就介绍这么多,希望对您有所帮助,谢谢!

 

要饭二维码

洪哥写文章很苦逼,如果本文对您略有帮助,可以扫描下方二维码支持洪哥!金额随意,先行谢过!大家的支持是我前进的动力!

文章的版权

本文属于“洪哥笔记”原创文章,转载请注明来源地址:PowerShell函数参数定义:http://www.splaybow.com/post/powershell-function-parameter.html

如果您在服务器运维、网络管理、网站或系统开发过程有需要提供收费服务,请加QQ:8771947!十年运维经验,帮您省钱、让您放心!
亲,如果有需要,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D

« PowerShell函数定义的Best Practices PowerShell函数的参数应该怎样命名 »