3

我正在创建一个 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!
4

1 回答 1

5

查看System.Console.SetOut()方法,将当前进程的标准输出临时设置为您可以读取的文本编写器。调用 DLL 后,您将使用 Console.OpenStandardOutput() 将标准输出重置为默认值。查看 SetOut 主题页面上的示例。

于 2013-03-04T15:47:36.920 回答