gpt4 book ai didi

powershell - 无法捕获写警告生成的警告输出(到WarningVariable中)

转载 作者:行者123 更新时间:2023-12-03 07:50:39 26 4
gpt4 key购买 nike

考虑这一行:

Write-Warning "test" -wv +t

如果运行此程序并随后验证 $t的内容,则会得到以下信息:
Message   InvocationInfo                             PipelineIterationInfo
------- -------------- ---------------------
test System.Management.Automation.Invocation... {0, 0, 0}

这确实是我的期望。

现在,如果我将这行代码转换为脚本,如下所示:
function WarnTest {
[CmdletBinding()]
param()
Write-Warning "test"
}

然后进行如下简单的函数调用:
WarnTest -wv +q
$q
$q保持为空。我对此感到有些困惑-印象是 [CmdletBinding()]确保将函数中的任何写警告都发送到警告流,并因此可以被 -WarningVariable参数捕获。

谁能阐明这一点?

我需要此功能的目的是测试哪些服务器处于联机状态(并将它们发送到标准输出),在此我还可以捕获有关那些处于脱机状态的警告。

最佳答案

在v2上尝试以下方法:

function WarnTest {
[CmdletBinding()]
param()
$pscmdlet.WriteWarning("test")
}

您的原始功能似乎可以在PowerShell v3上正常工作。

关于powershell - 无法捕获写警告生成的警告输出(到WarningVariable中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16425649/

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