2013-12-10 5 views
0

나는 스크립트 또는 함수에 표시되는 첫 번째 항목이 param 섹션에 있어야한다는 것을 읽었습니다. 따라서이 섹션에서 각 매개 변수의 기본값을 설정해야합니다. params. 예, 그것은 정통적이지 만 작동합니다.XML 값으로 기본 매개 변수 값을 설정하십시오.

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 파일에서 값을로드하여 매개 변수 기본값을 설정하는 더 좋은 방법이 있습니까?

답변

1

기본값없이 매개 변수를 그대로 둔 다음 $PSBoundParameters 변수를보고 전달 된 매개 변수를 확인하고 전달 된 매개 변수를 채울 수 있습니다.

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