今天要来聊一聊关于PowerShell中的动态参数,按照官方帮助文档来说所谓动态参数是在基于cmdlet,方法和脚本有明确值的条件下产生的。
比如,一些cmdlet的参数只能在某个驱动提供器时才有效;或者这样说,Encoding参数只能在Add-Content或者Get-Content等cmdlets有效。废话不多说,还是以例子为准吧。
以前,我们想要实现一个动态参数值的效果可以使用如下方法:
Function DynamicParameter
{
[CmdletBinding()]
Param
(
[Parameter()]
[ValidateSet('One','Two','Three','Four','Five')]
[String]$CustomParameter
)
}
这个例子中,我们用到了ValidateSet类型来提前设置静态参数值,我们可以简单的运行该方法,看到效果图如下,已经预先得到了所有我们设置的值:
但是这并不能做到真正的动态参数值。比如,如果我们想要的未必提前就已经准备好了,怎么办呢?这里就要用到真正的动态参数了,要创建一个动态参数&