2014-04-24 5 views
2

는 다음 스크립트를 고려 호출되는 함수에 상세 레벨을 통과하지 ')는 암시적인 자세한 매개 변수와 함께 호출됩니다. 이것을 피할 수있는 방법이 있습니까? (즉, Verbose 스위치로 'b'를 호출하고 Verbose 스위치없이 'a'를 호출하십시오. 당신이 외부 기능 b에서 a에 대한 자세한 정보 출력을 억제하려면PowerShell은

답변

3

, 당신은 PowerShell을 v3을 시작으로 $PSDefaultParameterValues 변수를 사용할 수 있습니다. PowerShell을 v2를 들어

function a{ 
    [CmdletBinding()] 
    Param() 
    Write-Verbose "A VERBOSE" 
    Write-Host "A NORMAL" 
} 

function b{ 
    [CmdletBinding()] 
    Param() 

    Write-Verbose "B VERBOSE" 
    Write-Host "B NORMAL" 

    a 
} 

$PSDefaultParameterValues['a:Verbose'] = $False 
b -Verbose 

, 당신은 당신이 b 함수에서 a를 호출 할 때 $False에 자세한 설정해야합니다.

function b{ 
    [CmdletBinding()] 
    Param() 

    Write-Verbose "B VERBOSE" 
    Write-Host "B NORMAL" 

    a -Verbose:$false 
} 
+1

사용하여 PS v3은'$ PSDefaultParameterValues ​​얻을 수 [ 'A : 자세한 정보를'] = $ FALSE '하지만 -Verbose'발견 : $ FALSE'방법은 잘 작동합니다. – Lankymart