コマンドプロンプトコマンドを実行して、C#で出力を読み取ろうとしています。これは私のコードです:
ProcessStartInfo cmdInfo = new ProcessStartInfo("cmd.exe", "/c " + command);
cmdInfo.CreateNoWindow = true;
cmdInfo.RedirectStandardOutput = true;
cmdInfo.UseShellExecute = false;
Process cmd = new Process();
cmd.StartInfo = cmdInfo;
cmd.Start();
string result = cmd.StandardOutput.ReadToEnd();
cmd.WaitForExit();
cmd.Close();
return result;
ほとんどの場合は機能しますが、使用しているコマンドでそれが不可能な場合はresult = ""になることがあります(たとえば、route addは成功または失敗時に出力を提供する必要があります)。何か案は?プロセスとReadToEnd呼び出しの間に競合状態を作成したのではないかと思っていましたか?