当前位置: 首页 > 编程笔记 >

PowerShell函数中使用必选参数实例

牛经赋
2023-03-14
本文向大家介绍PowerShell函数中使用必选参数实例,包括了PowerShell函数中使用必选参数实例的使用技巧和注意事项,需要的朋友参考一下

本文介绍在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函数设置必选参数,本文就介绍这么多,希望对您有所帮助,谢谢!

 类似资料:
  • 本文向大家介绍PowerShell函数参数设置为即可选又必选的方法,包括了PowerShell函数参数设置为即可选又必选的方法的使用技巧和注意事项,需要的朋友参考一下 本文介绍PowerShell自定义函数中使用参数集时,可以将同一个参数既设置为可选,又设置为必选。 好吧,小编承认,这个话题有点无聊,但确实还是有点有趣,不妨看一看啦。 在PowerShell中,我们有可能有这样的需求,如果只需要输

  • 本文向大家介绍PowerShell函数用Hash表传参实例,包括了PowerShell函数用Hash表传参实例的使用技巧和注意事项,需要的朋友参考一下 本文介绍在自定义PowerShell函数时,使用Hash表作为参数,它相当于将Hash表中的键当作参数名,而键的值当作参数值。 先直接看看这个以Hash表作为参数赋值给函数的示例: Get-ChildItem这个cmdlet,相当于DOS下的dir

  • 本文向大家介绍PowerShell函数中接收管道参数实例,包括了PowerShell函数中接收管道参数实例的使用技巧和注意事项,需要的朋友参考一下 本文介绍在自定义PowerShell函数时,如何设置函数通过管道(Pipeline)接收输入参数。 先看一个例子,用管道作为输入参数的函数: 使用管道作为输入参数,函数的执行情况如下: 在Test-Pipeline函数中,InputObject是一个接

  • 本文向大家介绍PowerShell函数中使用$PSBoundParameters获取输入参数列表实例,包括了PowerShell函数中使用$PSBoundParameters获取输入参数列表实例的使用技巧和注意事项,需要的朋友参考一下 本文介绍在自定义PowerShell函数时,有一个$PSBoundParameters的变量可以获取到输入参数列表。获取输入参入列表对我们进行功能调试有很大的帮助。

  • 本文向大家介绍PowerShell函数参数指定数据类型实例,包括了PowerShell函数参数指定数据类型实例的使用技巧和注意事项,需要的朋友参考一下 本文介绍在PowerShell创建自定义函数时,为必选参数设置强类型有什么好处,应该如何设置。 为了提高必选参数的安全性,PowerShell函数定义的最佳实践告诉我们,要为必选参数设置强类型。这是为什么呢,我们来看一个例子。 上面这个例子是接收用

  • 我正在用PowerShell编写一个脚本,在某个时候我需要在函数参数上使用ValidateSet。这是一个非常好的功能,但我需要的是更多的东西。 例如: 因此,此代码段允许我从列表中选择一个项目,如 然后将其打印到屏幕上。我想知道是否有可能允许选择多个值并将它们传递给来自一个验证集的函数,如下所示 也许有一个图书馆,或者我只是错过了一些东西,但我真的找不到一个解决方案。