我正在创建一个PowerShell二进制模块,它使用第三方库(DLL),它输出到控制台。所以,基本上我希望我的二进制模块输出自己的消息和该DLL的控制台输出。
有可能吗?
因此,假设第三方API执行以下操作:
public static void SomeMethod() {
...
Console.Write("Extracting the file...");
...
}
二进制模块调用它:
protected override void ProcessRecord() {
...
this.WriteObject("Hello!");
SomeClass.SomeMethod();
this.WriteObject("Goodbye!");
}
我看到的输出是:
Hello!
Goodbye!
我希望看到的是:
Hello!
Extracting the file...
Goodbye!
答案 0 :(得分:5)
查看System.Console.SetOut()方法,暂时将当前进程的标准输出设置为可以读取的文本编写器。在调用DLL之后,您将使用Console.OpenStandardOutput()将stdout重置为默认值。请查看SetOut主题页面上的示例。