考虑这一行:
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
参数捕获。
任何人都可以对此有所了解吗?
我需要这个功能的目的是测试哪些服务器在线(并将这些发送到标准输出),我还可以在其中捕获那些离线的警告。