1

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

在此先感谢您的任何建议!

4

1 回答 1

0

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

如果发生错误,让您的 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

于 2013-06-22T23:08:54.530 回答