У меня есть консольное приложение C #, которое запускается из терминала.Мой вопрос заключается в том, как я могу выполнить команды оболочки, такие как color a0
, dir
или ping 1.1.1.1
и т. Д., в том же терминале (и / или получить вывод при необходимости)
Я видел только решения, которые запускают новый процесс cmd.exe и запускают там нужные команды и возвращают вывод, но я хотел бы знать, , если , можно сохранить выполнение команды втот же процесс.
Скажем, когда я вызываю 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();
Но предварительно выполняет задачу в том же терминале, в котором запущена программа.