Mik*_*ard 14 parameters powershell function
有没有理由在函数定义中使用"Param(...)"结构?
我的理解是你应该使用它来指定脚本(和脚本块)的参数.我在网上看到很多带有参数的例子,而不是仅仅列出函数名后面的参数.
例:
function Foo([string]$Bar){
#Body of function
}
Run Code Online (Sandbox Code Playgroud)
要么,
function Foo{
Param([string]$Bar)
}
Run Code Online (Sandbox Code Playgroud)
And*_*der 19
在V1中,它只是一个偏好.param传统上使用该语句更为正式,但在功能上它是相同的.
您可能会在PowerShell V2中看到更多PARAM的使用,因为它能够向参数添加属性,类似于C#中的属性.
param
(
[Parameter( Mandatory=$true,
Position=0,
ValueFromPipeline = $true,
ValueFromPipelineByPropertyName = $true)]
[Alias("name")]
[String]
$path
)
Run Code Online (Sandbox Code Playgroud)
在这里,您可以指定参数属性和该属性的一组参数.您还可以指定别名和许多其他验证要求.
基思也提出了几点好处.您可以使用param语句将参数传递给匿名脚本块(lambda表达式)或PS1脚本.
需要param()来指定脚本文件和scriptblocks的参数:
PS> $sb = {param($x,$y) $x + $y}
PS> &$sb 1 3
4
Run Code Online (Sandbox Code Playgroud)
让它也可用于传统功能只是IMO的一致性.对于每个参数往往有很多行李,元数据的高级功能来说,它更好.
| 归档时间: |
|
| 查看次数: |
11652 次 |
| 最近记录: |