C#cmdlet - 将返回码传递给管道

时间:2013-06-20 11:32:10

标签: c# powershell cmdlet

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

提前感谢任何建议!

1 个答案:

答案 0 :(得分:0)

我不确定你在寻找“更好”的东西。这就是一个建议。

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

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