2

次のスクリプトを検討してください。

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
}

b -Verbose

verbose パラメーター スイッチを指定して関数 'b' を呼び出すと、関数 'a' ('b' で呼び出される) も暗黙的な verbose パラメーターで呼び出されます。これを回避する方法はありますか?(つまり、Verbose スイッチを使用して 'b' を呼び出し、それを使用せずに 'a' を呼び出します)。

4

1 に答える 1

3

afrom outside functionの詳細な出力を抑制したい場合は、PowerShell v3 以降で変数bを使用できます。$PSDefaultParameterValues

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

PowerShell v2 の場合、関数から$False呼び出すときにverbose を設定する必要があります。ab

function b{
    [CmdletBinding()]
    Param()

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

    a -Verbose:$false
}
于 2014-04-24T19:23:06.050 に答える