2013-03-05 3 views
12

私はC#からシェルコマンドを実行し、プログラム内の返す情報を使用します。 は、だから私はすでに、それは私が実行したコマンドになりましたので、C#を使用してシェルコマンドを実行し、文字列に情報を取得する

string strCmdText; 
strCmdText= "p4.exe jobs -e"; 
System.Diagnostics.Process.Start("CMD.exe",strCmdText); 

のような何かをする必要があり、端末から何かを実行するために知っている、といくつかの情報が返されます。このコマンドから... 私の質問は、この情報を使用する方法であります私のプログラムでは、おそらく、コマンドライン引数とは何か、しかし、わからない...

私はそれが非常に簡単なPythonなどのスクリプト言語でそれを行うためにということを知っているが、実際には#

+0

http://stackoverflow.com/q/1585354を参照してください。 –

+0

リンクされた質問は、プロセスから*戻り値*を取得する方法を説明しています。この質問はプログラムからの*出力*を望んでいるようです。http://stackoverflow.com/questions/14115768/reading-output-from-another-running-application –

答えて

35

cはあなたを使用する必要がありますProcessStartInfoで出力をリダイレクトできます。 MSDNSOの例があります。

E.G.

Process proc = new Process { 
    StartInfo = new ProcessStartInfo { 
     FileName = "program.exe", 
     Arguments = "command line arguments to your executable", 
     UseShellExecute = false, 
     RedirectStandardOutput = true, 
     CreateNoWindow = true 
    } 
}; 

プロセスを開始し、そこから読み:

proc.Start(); 
while (!proc.StandardOutput.EndOfStream) { 
    string line = proc.StandardOutput.ReadLine(); 
    // do something with line 
} 

あなたはよりにも多くのことを達成することができます達成しようとしている内容に応じて。私は、非同期的にコマンドラインにデータを渡し、そこから読み取るアプリケーションも書いてきました。このような例は、フォーラムに簡単には掲載されません。

+0

完璧です!ブライアンに感謝! – inside

+0

これは完璧です! – ifelsemonkey

関連する問題