如果我正在编写二进制PowerShell模块,并且碰巧使用写入STDOUT(Console.Out
)的.NET库 - 是否有推荐的方法重新路由控制台输出到PowerShell的输出流?
我可以通过Console.Out
设置我自己的TextWriter
来拦截Console.SetOut(...)
,然后用它做一些事情(即我可以用StringWriter
缓冲输出并写下来在未来的某些时候,或者我可以编写一个自定义TextWriter
,将所有Write
命令发送到PowerShell的WriteObject
)。
我的问题是,是否有一些标准或推荐的做法可以在PowerShell库中执行此操作或某些内置工具?
答案 0 :(得分:0)
我通过GitHub询问了PS团队的问题,一般的回答是TextWriter-to-WriteObject方法是一种合理的方法:https://github.com/PowerShell/PowerShell/issues/4849
答案 1 :(得分:0)
如果要输出到管道,请使用WriteObject()
。 WriteInformation()
,WriteDebug()
,WriteWarning()
会向主机收到消息(字符串)。