16

C# からシェル コマンドを実行し、返された情報をプログラム内で使用したいと考えています。したがって、ターミナルから何かを実行するには、次のようなことをする必要があることをすでに知っています。

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

したがって、コマンドが実行され、このコマンドからいくつかの情報が返されます...私の質問は、この情報をプログラムでどのように使用できるかです。おそらくコマンドライン引数と関係がありますが、わかりません。

私は本当にC#を使う必要があります。

4

1 に答える 1

43

ProcessStartInfoで出力をリダイレクトできます。MSDNSOに例があります。

例えば

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
}

達成しようとしていることに応じて、さらに多くのことを達成することもできます。データをコマンド ラインに非同期で渡し、コマンド ラインからも読み取るアプリを作成しました。このような例は、フォーラムに簡単に投稿することはできません。

于 2013-03-05T21:29:04.430 に答える