PowerShell函数参数设置为即可选又必选的方法
2019/7/10 21:27:35
本文主要是介绍PowerShell函数参数设置为即可选又必选的方法,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本文介绍PowerShell自定义函数中使用参数集时,可以将同一个参数既设置为可选,又设置为必选。
好吧,小编承认,这个话题有点无聊,但确实还是有点有趣,不妨看一看啦。
在PowerShell中,我们有可能有这样的需求,如果只需要输入某个参数时,这个参数是可选的。但如果还要输入别的参数,那这个参数就变成必选的了。那么这种需求如何来满足呢?那就是本文的意义所在了。
function Connect-Somewhere
{
[CmdletBinding(DefaultParameterSetName='A')]
param
(
[Parameter(ParameterSetName='A',Mandatory=$false)]
[Parameter(ParameterSetName='B',Mandatory=$true)]
$ComputerName,
[Parameter(ParameterSetName='B',Mandatory=$false)]
$Credential
)
$chosen = $PSCmdlet.ParameterSetName
“You have chosen $chosen parameter set.”
}
读了上面这个函数,有没有什么疑惑?上面这个PowerShell函数定义了两个参数集,一个参数集名为A,另一个名为B。参数集A只有一个参数$ComputerName,且它是可选的。而参数集B有两个参数$ComputerName和$Credential。如果我们使用参数集A时,输入不需要输入ComputerName这个参数,因为它不是必选的。而如果我们使用参数集B,这个时候就必须要填$ComputerName了。
且看下面的函数调用示例。
PS> Connect-Somewhere
You have chosen A parameter set.
PS> Connect-Somewhere -ComputerName test
You have chosen A parameter set.
PS> Connect-Somewhere -Credential user1
cmdlet Connect-Somewhere at command pipeline position 1
Supply values for the following parameters:
ComputerName: NOWMANDATORY!
You have chosen B parameter set.
第一个调用Case是使用默认参数集,函数中默认参数集是参数集A,参数集A只有一个参数$ComputerName,且是可选的,所以什么都不输入是可以的。
第二个调用Case是使用了一个ComputerName参数,符合参数集A的条件,自动匹配为参数集A了。
第三个调用Case只使用了一个Credential参数,这个参数是出现在参数集B中的。但如果使用参数集B,那必须填ComputerName参数,所以就报错了。
关于PowerShell函数参数即可选又必选,本文就介绍这么多,希望对您有所帮助,谢谢!
这篇关于PowerShell函数参数设置为即可选又必选的方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2022-09-14SharePoint 2019 用 PowerShell将启用发布功能站点网站集另存为模板
- 2022-08-30PowerShell教程 - 程序性能和BUG分析工具
- 2022-08-30PowerShell教程 - 模块管理(Modules Management)
- 2022-08-29PowerShell教程 - Web requests(Web请求)
- 2022-08-26PowerShell教程 - 日期时间管理(Date & Time Management)
- 2022-08-25PowerShell教程 - 磁盘与硬件管理(Disk & Hardware Management)
- 2022-08-25PowerShell教程 - 系统事件管理(System Event Management)
- 2022-08-25PowerShell教程 - 文件系统管理(File System Management)
- 2022-08-24PowerShell教程 - 网络管理(Network Management)
- 2022-08-24PowerShell