从 C# 调用 Powershell 并处理异常
我使用 Process.Start() 从 C# 调用 Powershell 脚本。如何捕获 C# 代码中 Powershell 脚本引发的异常?
I am calling Powershell scripts from C# using Process.Start(). How do I capture exceptions that are raised by the Powershell script in the C# code?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
用 C# 托管 PowerShell 引擎非常简单。这段代码使用了一些过时的 API,但它仍然有效,并且让您了解所涉及的内容:
Hosting the PowerShell engine in C# is pretty simple. This code uses a bit dated API but it still works and gives you an idea of what is involved:
抱歉,我不知道如何评论基思的回答。
您是否不需要检查
if (pipeline.error.Count > 0)
然后使用pipeline.error.Read()
?我一直相信您的 try/catch 不会处理运行空间级别发生的任何错误。
Apologies, I can't work out how to comment on Keith's answer.
Do you not need to check
if (pipeline.error.Count > 0)
and then make use ofpipeline.error.Read()
?I've been led to believe the try/catch you have won't handle any errors that occur at the runspace level.
如果您想与 powershell 交互,则不应使用 process.start,而应使用 主机 powershell。
If you want to interact with powershell you should not use process.start but instead host powershell.