本文介绍在PowerShell创建自定义函数时,如何添加必选参数,可以使用Mandatory关键词。

默认情况下,PowerShell自定义的函数中,参数都是可选的(optional)。如果要将一个参数设置为必选参数,那么必须对其设置Mandatory声明。

复制代码 代码如下:
function Test-Function
{
    param(
        [Parameter(Mandatory=$true)]
        $p1,
        $p2='p2'
    )
    Write-Host "p1=$p1, p2=$p2"
}

在上面的示例函数中,参数$p1是必选参数,因为设置了Mandatory=$true,而$p2没有做任何设置,默认是可选的。按照PowerShell函数定义的Best Practices,可选参数都要设置一个默认值的,这点要记住。

在调用这个函数的时候,如果我们直接运行Test-Function而不输入参数,系统提示我们输入p1。

复制代码 代码如下:
PS> Test-Function
cmdlet Test-Me at command pipeline position 1
Supply values for the following parameters:
p1:

顺便说一下,在PowerShell 3.0中,[Parameter(Mandatory=$true)] 这句可以简写成 [Parameter(Mandatory)],就是说“=$true”这一部分可以省略了。能少写点肯定少写点好,但如果少写了,放到PowerShell 3.0之前的环境——如PowerShell 2.0,那就无法运行了。看来鱼与熊掌不能得兼,我们还得要懂得取舍啊!

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

广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!

RTX 5090要首发 性能要翻倍!三星展示GDDR7显存

三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。

首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。

据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。