基本参数

可以使用 param 块使用参数定义函数:

function Write-Greeting {
    param(
        [Parameter(Mandatory,Position=0)]
        [String]$name,
        [Parameter(Mandatory,Position=1)]
        [Int]$age
    )
    "Hello $name, you are $age years old."
}

或者使用简单的函数语法:

function Write-Greeting ($name, $age) {
    "Hello $name, you are $age years old."
}

注意: 任何类型的参数定义都不需要强制转换参数。

与 param 块相比,简单函数语法(SFS)具有非常有限的功能。
虽然你可以定义要在函数中公开的参数,但你不能指定参数属性 ,使用参数验证 ,包括 [CmdletBinding()] 和 SFS(这是一个非详尽的列表)。

可以使用有序或命名参数调用函数。

调用的参数顺序与函数头中的声明顺序(默认情况下)匹配,或者可以使用 Position 参数属性指定(如上面的高级函数示例所示)。

$greeting = Write-Greeting "Jim" 82

或者,可以使用命名参数调用此函数

$greeting = Write-Greeting -name "Bob" -age 82