Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#cmdlet-将返回代码传递到管道_C#_Powershell_Cmdlet - Fatal编程技术网

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

C#cmdlet-将返回代码传递到管道,c#,powershell,cmdlet,C#,Powershell,Cmdlet,我需要将一个用作两个系统之间接口的小型C#应用程序转换为PowerShell cmdlet。第一个系统使用一些参数调用应用程序,并返回两个返回码中的一个,如0表示成功,1000或1001表示特定错误。 目前,我编写的cmdlet正在使用WriteObject()将返回代码传递回管道。我的问题是,如果返回代码不是0并且发生错误,是否有更好的方法来执行此操作 提前感谢您的建议 我不确定“更好”是什么意思。这是一个建议 如果发生错误,请让您的cmdlet写入错误流。您应该使用WriteError而不是

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


提前感谢您的建议

我不确定“更好”是什么意思。这是一个建议

如果发生错误,请让您的cmdlet写入错误流。您应该使用WriteError而不是WriteObject。然后,powershell脚本可以以try/catch的方式执行cmdlet,并以此方式捕获错误。如果对应用程序有意义,您还可以将错误代码转换为警告。使用写警告。最后,如果要终止脚本,还有throwtterminingerror。throwterminationError也可以捕获,但如果脚本没有终止,而如果未捕获写入错误,脚本将继续

MSDN上有一整节关于cmdlet和错误报告的内容: