PowerShell 中的函数参数

标签 function powershell parameters

是否有理由在函数定义中使用“Param( ... )”结构?

我的理解是,您应该使用它来指定脚本(和脚本 block )的参数。我在网上看到很多示例都以这种方式列出参数,而不是仅仅在函数名称后面列出参数。

示例:

function Foo([string]$Bar){
   #Body of function
}

或者,

function Foo{
     Param([string]$Bar)

}

最佳答案

在 V1 中,这实际上只是一个偏好。传统上,使用 param 语句更为正式,但在功能上是相同的。

您可能会在 PowerShell V2 中看到 PARAM 的更多使用,因为能够向参数添加属性,类似于 C# 中的属性。

param
(
[Parameter( Mandatory=$true,
            Position=0,
            ValueFromPipeline = $true,
            ValueFromPipelineByPropertyName = $true)]
[Alias("name")]
[String]
$path
)

在这里您可以指定参数属性和该属性的一堆参数。您还可以指定别名和许多其他验证要求。

Keith 也提出了一些很好的观点。您可以使用 param 语句将参数传递给匿名脚本 block ( lambda expressions ) 或 PS1 脚本。

关于PowerShell 中的函数参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/870141/

相关文章:

在更新中多次快速调用函数

powershell - -ErrorAction with Get-ADComputer 不隐藏错误

java - 在 drools 中传递参数

JavaScript:递归返回结果

C 函数中的 Const 声明和实现

regex - 如何找出 “-replace”是否真的做了什么

MySQL 动态 ORDER BY

sql - OrientDB - 在 OrientDB 函数中将数组值作为参数传递的 SQL 命令

C++函数调用问题

bash - Powershell 中的 CDPATH 功能?