2

如果我正在编写一个二进制 PowerShell 模块并且我碰巧使用了一个写入 STDOUT ( Console.Out) 的 .NET 库——是否有推荐的方法将控制台输出重新路由到 PowerShell 的输出流?

Console.Out我可以通过设置我自己的TextWritervia来拦截Console.SetOut(...)它,然后用它做一些事情(即我可以用 a 缓冲输出StringWriter并在将来的某个时候将其全部写出来,或者我可以编写一个TextWriter将所有Write命令发送到 PowerShell 的自定义WriteObject)。

我的问题是,是否已经有一些标准或推荐的做法来执行此操作或 PowerShell 库中的一些内置工具?

4

2 回答 2

0

如果要输出到管道,请使用WriteObject(). WriteInformation(), WriteDebug(),WriteWarning()向主机发送消息(字符串)。

于 2017-09-20T01:56:48.870 回答
0

我通过 GitHub 询问了 PS 团队的问题,普遍的回答是 TextWriter-to-WriteObject 方法是一种合理的方法: https ://github.com/PowerShell/PowerShell/issues/4849

于 2017-09-19T19:33:45.603 回答