C#在当前终端执行shell命令

时间:2018-12-06 11:40:28

标签: c# shell terminal execution

我有一个从终端运行的C#控制台应用程序。然后我的问题是我如何在同一终端中执行color a0dirping 1.1.1.1等shell命令(和/或在需要时获取输出) )

我只看到了启动新cmd.exe进程并在其中运行所需命令并返回输出的解决方案,但是我想知道 if 是否可以保留命令在同一过程中执行。

所以说当我在控制台中调用myprogam.exe时,我希望它更改为控制台颜色为绿色。 大多数人会做的事情(在大多数情况下我也是这样)是

Console.ForegroundColor = Color.Green;

但这仅更改为以后打印的文本。无论如何,我想要一个像这样的解决方案:

string command = "color a0";
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.UseShellExecute = false;
startInfo.RedirectStandardOutput = true;
startInfo.FileName = "CMD.exe";
startInfo.Arguments = "/c " + command; // The Command
process.StartInfo = startInfo;
process.Start();
string output = process.StandardOutput.ReadToEnd();

但是在程序运行所在的终端中执行任务。

0 个答案:

没有答案