1
考虑这条线产生的报警输出:不能捕捉写警告(成WarningVariable)
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,但我很高兴我有一个解决方法。谢谢! – Joost 2013-05-08 07:50:20