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



我需要转换一个小c#应用程序,它被用作两个系统之间的接口到PowerShell cmdlet。第一个系统调用带有一些参数的应用程序,并返回两个返回码中的一个,如0表示成功,1000或1001表示特定错误。目前,我编写的cmdlet正在使用WriteObject()将返回代码传递回管道。我的问题是,如果有一个更好的方法来做到这一点,特别是如果返回代码不是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

最新更新