【发布时间】:2014-03-13 08:02:50
【问题描述】:
我正在运行这个
string path = string.Format(@"\\{0}\c$\Windows\CCM\Logs", computerName);
Process process = Process.Start(new ProcessStartInfo()
{
FileName = "cmd.exe",
Arguments = string.Format(@"net use {0} && dir {0}", path),
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true,
CreateNoWindow = true
});
string result = process.StandardOutput.ReadToEnd() + " " + process.StandardError.ReadToEnd();
process.WaitForExit();
Console.WriteLine(result);
但是没有任何东西被写入控制台。我究竟做错了什么?我可能已经浏览了有关此问题的所有其他 SO 线程,并进行了大量的谷歌搜索,但我无法让它工作。
【问题讨论】:
-
cmd.exe在处理命令后不会自动关闭,它会等待进一步的输入,因此您的程序会在process.WaitForExit停止,而不是转到Console.WriteLine(result)。基于事件侦听或异步输出的建议解决方案应该可以工作。
标签: c# process cmd output stdout