PowerShell实例函数定义与参数传递

发布时间:2019-08-08编辑:脚本学堂
本文介绍了PowerShell自定义函数定义参数的两种方法,一种是将参数列表放到函数名之后,另一种则是PowerShell独有的方式,即使用param关键词,需要的朋友参考下。

为大家分享Powershell自定义函数定义参数的两种方法。
第一种定义参数的方式,——将参数列表放到函数名之后
例子:
 

复制代码 代码示例:
function Test-Function($参数名1='默认参数值1', $参数名2='默认参数值2')
{
    Write-Host "参数1=$参数名1,参数2=$参数名2";
}

这种方式比较简单直接,而且有点像C#和PHP,可以直接赋默认值。
这种将参数定义的列表直接放到函数名后,不是最佳的做法。(www.jb200.com 脚本学堂)
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