使用XML值设置默认参数值

时间:2013-12-10 03:31:20

标签: powershell

我在某处读到了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的默认值?

1 个答案:

答案 0 :(得分:1)

您可以保留没有默认值的参数,然后查看$PSBoundParameters变量以查看传入的参数,并填写我们未传递的参数。

Param(
    [string]$Param1,
    [string]$Param2)
[xml]$defaults =Get-Content file.xml
if(!$PSboundParameters.ContainsKey("Param1"))
{
    $Param1 = $defaults.Configuration.Defaults.Param1
}