我在某处读到了param部分必须是脚本或函数中出现的第一个东西,所以这就是我为了设置每个参数的默认值而想出的。是的,这是非正统的,但它确实有效。
Param (
[Xml]$xmlObj = (Get-Content "Download-VBK_config.xml"),
[String]$dlFrom = $xmlObj.Configuration.Download.From,
[String]$dlTo = $xmlObj.Configuration.Download.To,
[String]$exTo = $xmlObj.Configuration.Extract.To
)
但是,有没有更好的方法可以通过加载XML文件中的值来设置param的默认值?
答案 0 :(得分:1)
您可以保留没有默认值的参数,然后查看$PSBoundParameters
变量以查看传入的参数,并填写我们未传递的参数。
Param(
[string]$Param1,
[string]$Param2)
[xml]$defaults =Get-Content file.xml
if(!$PSboundParameters.ContainsKey("Param1"))
{
$Param1 = $defaults.Configuration.Defaults.Param1
}