CMD 命令未在控制台中运行
Posted
技术标签:
【中文标题】CMD 命令未在控制台中运行【英文标题】:CMD command not running in console 【发布时间】:2011-11-25 11:14:16 【问题描述】:我有一些在 C# 中运行 cmd 命令的代码,它在 WinForm 中运行良好,但是在控制台应用程序中运行时它不起作用。我有点不知道为什么会这样,我尝试添加 Windows.Forms 作为参考并将using
添加到代码中,但这也不起作用。我唯一能想到的另一件事是,因为它作为控制台运行,所以不能在此之上运行另一个控制台窗口?
感谢任何帮助。
ProcessStartInfo cmd = new ProcessStartInfo("cmd.exe");
cmd.RedirectStandardInput = true;
cmd.RedirectStandardOutput = true;
cmd.RedirectStandardError = true;
cmd.UseShellExecute = false;
cmd.CreateNoWindow = true;
cmd.WindowStyle = ProcessWindowStyle.Hidden;
Process console = Process.Start(cmd);
console.StandardInput.WriteLine("command to run");
【问题讨论】:
哇,这一切都是为了创建一个文件夹? Directory.CreateDirectory 方法怎么样? @DarinDimitrov md 命令只是作为我放置命令的示例,我明白你的意思,已编辑! 你绝对需要cmd.exe
来执行你的命令吗?你不能直接使用Process.Start
执行它们吗?
是的,我不喜欢出现此代码停止的控制台窗口。
【参考方案1】:
以下代码将执行您想要的任何控制台命令并在当前窗口中输出控制台文本,while(true) 之后的所有内容都只是示例:
ProcessStartInfo cmd = new ProcessStartInfo("cmd.exe");
cmd.RedirectStandardInput = true;
cmd.UseShellExecute = false;
cmd.CreateNoWindow = false;
cmd.WindowStyle = ProcessWindowStyle.Normal;
Process console = Process.Start(cmd);
while(true)
console.StandardInput.WriteLine("pause");
如果您不想要任何控制台输出,请将 CreateNoWindow 设置为 true。此代码也可以在使用 System.Diagnostics 的控制台应用程序中运行
祝你好运!
【讨论】:
太棒了,这正是我想要的,+1。非常感谢! 对我不起作用。它只是简单地传递命令,但幕后没有任何反应。以上是关于CMD 命令未在控制台中运行的主要内容,如果未能解决你的问题,请参考以下文章