12

argsを使用してコマンドpromtプロセスを開始しようとしています。エラーが存在する場合は、エラーに関する情報を取得したいと思います。

someProcess = System.Diagnostics.Process.Start(cmd, someArgs);

よろしく、ロビジ

4

3 に答える 3

13

他の答えは正しいです。使用できるコードは次のとおりです。

ProcessStartInfo startInfo = new ProcessStartInfo(cmd, args);
startInfo.UseShellExecute = false;
startInfo.RedirectStandardError = true;
Process someProcess = Process.Start(startInfo);
string errors = someProcess.StandardError.ReadToEnd();

ファイルが見つからない場合、標準エラーでエラーが発生しないことに注意してください。代わりに例外が発生します。

于 2010-04-25T17:52:34.057 に答える
2

あなたはおそらくStandardErrorプロパティを探しています。

于 2010-04-25T17:45:51.163 に答える
2

Process.StandardErrorプロパティ

アプリケーションのエラー出力を読み取るために使用されるストリームを取得します。

これはあなたが望むことをするはずです。

ノート

StandardErrorを使用するには、ProcessStartInfo.UseShellExecuteをfalseに設定し、ProcessStartInfo.RedirectStandardErrorをtrueに設定する必要があります。それ以外の場合、StandardErrorストリームから読み取ると例外がスローされます。

于 2010-04-25T17:46:39.510 に答える