2017-02-15 1 views
1

ログファイルの出力を処理してプロットに配置しようとしています。しかし、私はGet-Content-Waitの周りに手を置くことはできません。 私のC#プログラムはまったく呼び出されていないようです。待機スイッチなしでうまく動作しますが、それは私が必要とするものではありません。 Simpleサンプル:コンソールアプリケーションで待機スイッチを使用してGet-Contentの出力を受け取る

using static System.Console; 

public class Program 
{ 
    public static void Main(string[] args) 
    { 
     WriteLine("Starting..."); 
     if (IsInputRedirected) 
     { 
      while (In.Peek() != -1) 
      { 
       Write("["); 
       var input = In.ReadLine(); 
       WriteLine($"{input}]"); 
      } 
      WriteLine("... done."); 
     } 
     else 
     { 
      WriteLine("Nothing"); 
     } 
    } 
} 

のようなサンプル呼び出しで:

gc .\Program.cs | .\bin\Debug.ConsoleTest.exe 

gc .\Program.cs -Wait | .\bin\Debug.ConsoleTest.exe 

誰もがコンソールアプリケーションからの-waitでは、Get-コンテンツの出力を受信する方法を知っています?

+0

(大出力の$stdout = $p.StandardOutput.ReadToEnd() ;$stderr = $p.StandardError.ReadToEnd()を使用して問題がありますのでご注意ください、彼らはお互いをデッドロック)が建設を必要とstdoutとSTDERRORしたい場合は、「 - コンテンツ取得」または「-wait」とは何ですか?他のコマンドからデータを受信して​​エコーするだけのようです。 – BugFinder

+1

[これ](http://stackoverflow.com/questions/19919180/get-content-wait-not-working-as-described-in-the-documentation)投稿はバグだと言いました。 Powershell 5。 –

答えて

0

Get-contentは、プログラムの出力を取り除かないファイルの内容を取得するために使用されます。 あなたはログファイルu genarateのget-contentを使うことができますが、もしあなたが待機していれば、待っているproccesをkillするまで待つことを知っています。

したがって、Get-content-Waitは、他のプロセスから書き込まれたログファイルの追跡にのみ使用されます。

.\Program.cs | .\bin\Debug.ConsoleTest.exeを使用すると、終了するまで待機します。 Hereを説明したようにあなたが

関連する問題