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()メソッドを見て、現在のプロセスの stdout を読み取り可能なテキスト ライターに一時的に設定します。DLL を呼び出した後、Console.OpenStandardOutput() を使用して stdout をデフォルトにリセットします。SetOut トピック ページの例を見てください。

于 2013-03-04T15:47:36.920 に答える