请勿在阅读前标记为重复。
看了很多谷歌搜索后我发现了很多代码。所有的代码都没关系,但我的问题多一点。
假设,我可以使用下面的代码执行‘dir’
命令,这给了我完美的输出:
static void Main(string[] args)
{
var str=ExecuteCommand("/c dir");
//var str=ExecuteCommand("/c chkdsk C: /f/r/x");
MessageBox.Show(str);
}
static string ExecuteCommand(string cmd)
{
Process proc = new Process();
proc.StartInfo.FileName = "cmd.exe";
proc.StartInfo.Arguments = cmd;
proc.StartInfo.UseShellExecute = false;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
proc.StartInfo.CreateNoWindow = true;
proc.Start();
string output = proc.StandardOutput.ReadToEnd();
return output;
}
但是,当我运行此命令“/c chkdsk C: /f/r/x”
时,没有输出,因为它等待用户输入(y / n)。我想查看输出并从我的C#代码中发送y或n,而不是通过cmd控制台窗口发送。或者