0

コマンド ライン プログラムで作業する場合は、ac# クラス メソッドを使用します。

コマンドライン プログラムが正常に実行され、実行された操作が正常か失敗したかをどのように判断しますか?

また、画面のコマンドライン出力を c# クラス メソッドに取得するにはどうすればよいですか?

4

5 に答える 5

3

Process クラスを使用して、コマンド ライン コマンドを実行できます。

次のコードは、標準出力を にキャプチャしoutput、プロセスの終了コードを に割り当てますexitCode

using (Process p = new Process())
{
    p.StartInfo.FileName = exeName;
    p.StartInfo.Arguments = args;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.RedirectStandardOutput = true;
    p.Start();
    string output = p.StandardOutput.ReadToEnd();
    p.WaitForExit();
    int exitCode = p.ExitCode;
}
于 2011-07-04T16:49:20.547 に答える
1

何かのようなもの:

Process mycommand = new Process();
mycommand.StartInfo.FileName = "myexe.exe";
mycommand.StartInfo.Arguments = "param1";
mycommand.StartInfo.UseShellExecute = false;
mycommand.StartInfo.RedirectStandardOutput = true;
mycommand.Start();    
Console.WriteLine(mycommand.StandardOutput.ReadToEnd());
mycommand.WaitForExit();

通常、終了コードが 0 であるかどうかにかかわらず、exe の状態を判断しますが、それは間違いなく exe の作成者次第です。

于 2011-07-04T16:46:26.790 に答える
0

Processこのクラスを使用してコマンドラインアプリを呼び出していると仮定します。

プロセスの終了コードは、を使用して見つけることができますProcess.ExitCodeProcessStartInfo.RedirectStandardOutput標準出力を開始する前に設定してから、Process.StandardOutputまたはProcess.OutputDataReceivedイベントを使用することで、標準出力をリダイレクトできます。

于 2011-07-04T16:44:33.117 に答える
0

この質問を見て、ここにリンクの説明を入力してください。

必要な追加情報はprocess.ExitCode、それが成功したかどうかを確認することです。もちろん、コンソール アプリの Main メソッドは、失敗した場合に終了コードを返す必要がありますが、多くの場合、そうではありません。

于 2011-07-04T16:48:09.423 に答える
0

これには、Process.Startメソッドを使用します。渡された を使用して、プロセスの実行方法を制御できますProcessStartInfo

var myProcess = Process.Start(new ProcessStartInfo {
  FileName = "process.exe",
  UseShellExecute = false,
  RedirectStandardOutput = true,
  CreateNoWindow = true
});
if (!myProcess.WaitForExit(5000)) { // give it 5 seconds to exit
  myProcess.Kill();
}
if (myProcess.ExitCode != 0) {
  // error!
}
var output = myProcess.StandardOutput.ReadToEnd(); // access output
于 2011-07-04T16:49:37.107 に答える