WPF使用简单参数运行CMD行,打印输出 - 无需批处理文件

时间:2015-07-10 15:08:59

标签: c# wpf batch-file cmd

我在使用批处理文件时遇到了一些困难。我想要做的是当单击一个按钮时,使用我指定的简单参数运行命令行。

到目前为止,这是我的代码:

ProcessStartInfo startInfo = new ProcessStartInfo("cmd.exe");
startInfo.WindowStyle = ProcessWindowStyle.Normal;
startInfo.UseShellExecute = true;        
startInfo.Arguments = "dir";
Process.Start(startInfo);
string output = Process.StandardOutput.ReadToEnd();
txtblkOutput.Text = output;

然而,这只是打开一个cmd窗口,没有任何反应。文本框保持空白。

但我可以这样做:

var process = new Process();
process.StartInfo.FileName = "C:/Users/user/Documents/SUB-20 Tool/commands.bat";
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.Start();
string output = process.StandardOutput.ReadToEnd();
txtblkOutput.Text = output;

在批处理文件中,它只是说dir。这有效,我将输出发送到我的文本框。

为什么这只适用于批处理文件?如果没有它,我可以使用参数属性吗?

1 个答案:

答案 0 :(得分:0)

这是例外行为。使用参数cmd.exe执行dir时,它不会执行该命令。

作为示例,请参见下面的屏幕截图: enter image description here

this在参数中执行命令如下:

cmd.exe /C <command>