gpt4 book ai didi

powershell - Powershell 中的递归 -Verbose

转载 作者:行者123 更新时间:2023-12-04 14:28:44 28 4
gpt4 key购买 nike

有没有一种简单的方法可以让 -Verbose 切换到 Powershell 中的其他函数调用“直通”?

我知道我可以在 $PSBoundParameters 中搜索标志并执行 if 语句:

[CmdletBinding()]
Function Invoke-CustomCommandA {
Write-Verbose "Invoking Custom Command A..."

if ($PSBoundParameters.ContainsKey("Verbose")) {
Invoke-CustomCommandB -Verbose
} else {
Invoke-CustomCommandB
}
}

Invoke-CustomCommandA -Verbose

然而,这样做似乎相当困惑和多余......想法?

最佳答案

一种方法是在高级函数的顶部使用 $PSDefaultParameters:

$PSDefaultParameterValues = @{"*:Verbose"=($VerbosePreference -eq 'Continue')}

然后你用 -Verbose 调用的每个命令参数将根据您在调用高级函数时是否使用 -Verbose 来设置它。

如果您只有几个命令,请执行以下操作:
$verbose = [bool]$PSBoundParameters["Verbose"]
Invoke-CustomCommandB -Verbose:$verbose

关于powershell - Powershell 中的递归 -Verbose,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20393040/

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