gpt4 book ai didi

debugging - Powershell 不会将详细级别传递给被调用的函数

转载 作者:行者123 更新时间:2023-12-02 23:28:50 25 4
gpt4 key购买 nike

考虑以下脚本:

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

如果我们使用指定的详细参数开关调用函数“b”,则函数“a”(在“b”中调用)也会使用隐式详细参数调用。有什么办法可以避免这种情况吗? (换句话说,使用 Verbose 开关调用“b”,不使用它调用“a”)。

最佳答案

如果你想抑制来自外部函数 ba 的详细输出,你可以使用 $PSDefaultParameterValues 变量,从 PowerShell 开始v3.

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,当您从 b 函数调用 a 时,您必须将 verbose 设置为 $False

function b{
[CmdletBinding()]
Param()

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

a -Verbose:$false
}

关于debugging - Powershell 不会将详细级别传递给被调用的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23277783/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com