进程启动一个新的 CMD 实例

Process starts a new CMD instance

我有一个调用 'netsh' 进程并更改一些 IP 信息的命令行应用程序。我遇到的问题是,每次我在 CMD 或 PowerShell 中调用我的应用程序时,它都会启动一个新的 CMD 实例(打开一个新的 CMD window 并在它完成执行后将其关闭)

我想知道是否有办法让所有事情都发生在同一个地方window

这是启动进程的代码:

Process p = new Process();
ProcessStartInfo psi = new ProcessStartInfo("netsh", queryStr);
p.StartInfo = psi;
p.Start();

Console.WriteLine("netsh query string is: " + "***" + queryStr + "***");

这是我的第一个问题,请不要苛求

希望我正确理解了你的问题。您可以在重定向输出时隐藏 Shell。例如,

Process p = new Process();
ProcessStartInfo psi = new ProcessStartInfo("netsh", queryStr);
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.RedirectStandardOutput = true;
psi.UseShellExecute = false;
p.StartInfo = psi;
p.Start();

var output =  p.StandardOutput.ReadToEnd();

ProcessStartInfo.WindowStyle 允许在进程启动时设置 Window 的状态。在当前情况下,您可以将其设置为 ProcessWindowStyle.Hidden

ProcessStartInfo.UseShellExecute表示是否使用OS的Shell。禁用此功能将有助于重定向输出。

ProcessStartInfo.RedirectStandardOutput表示输出是否写入StandardOutput。通过将其设置为 true,您可以重定向输出流并使用 Process.StandardOutput 读取输出并按照应用程序设计

显示