以前发了一个用WinAPI合并stderr到stdout的方法,但是实际上不用这么麻烦,直接使用下面的命令格式就可以了。
<code class="language-bat">cmd /c 命令 2>&1 </code>
比如如果运行cmd /c dir aaa会出现错误消息File Not Found,但是由于是输出到stderr的,C#的Process类并不能将它与stdout合并显示出来:
但是如果运行cmd /c dir aaa 2>&1,就可以将stderr和stdout合并了:
<code class="language-cs">private void button1_Click(object sender, EventArgs e) { Process proc = new Process(); proc.StartInfo.FileName = "cmd"; proc.StartInfo.Arguments = "/c dir aaa 2>&1"; proc.StartInfo.UseShellExecute = false; proc.StartInfo.CreateNoWindow = true; proc.StartInfo.RedirectStandardOutput = true; proc.Start(); this.textBox1.Text = proc.StandardOutput.ReadToEnd(); } </code>
[修改于 8年0个月前 - 2016/12/13 18:52:30]
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |