【问题标题】:C# cmdlet - Passing returncodes to the pipelineC# cmdlet - 将返回码传递给管道
【发布时间】:2013-06-23 07:08:54
【问题描述】:

我需要将一个用作两个系统之间接口的小 C# 应用程序转换为 PowerShell cmdlet。第一个系统使用一些参数调用应用程序并返回几个返回码中的一个,例如成功的 0 或特定错误的 1000 或 1001。 目前,我编写的 cmdlet 正在使用 WriteObject() 将返回码传递回管道。我的问题是,如果返回码不是 0 并且发生错误,是否有更好的方法来执行此操作?

提前感谢您的任何建议!

【问题讨论】:

标签: c# powershell powershell-cmdlet


【解决方案1】:

我不确定您在寻找什么“更好”。这里说的是一个建议。

如果发生错误,让您的 cmdlet 写入错误流。您将使用 WriteError 而不是 WriteObject。然后,powershell 脚本可以在 try/catch 中执行您的 cmdlet,并以这种方式捕获错误。如果这对您的应用有意义,您还可以将错误代码转换为警告。使用写警告。最后还有 ThrowTerminatingError 如果你想终止一个脚本。 ThrowTerminatingError 也可以被捕获,但如果不是,则脚本终止,而如果未捕获 Write-Error,则脚本继续。

这是 MSDN 上有关 cmdlet 和错误报告的完整部分:http://msdn.microsoft.com/en-us/library/windows/desktop/dd878251(v=vs.85).aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-11
    相关资源
    最近更新 更多