进程启动一个新的 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
读取输出并按照应用程序设计
显示
我有一个调用 '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
读取输出并按照应用程序设计