我正在尝试执行命令提示符命令并读取 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 调用之间创建了竞争条件?