1

次の行を検討してください。

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パラメーターでキャッチされる可能性があるという印象を受けました.

誰でもこれに光を当てることができますか?

これが必要な目的は、どのサーバーがオンラインであるかをテストする (そしてこれらを標準出力に送信する) 機能であり、オフラインのサーバーの警告も取得できます。

4

1 に答える 1