Executing Multiple Commands Efficiently in .NET
In .NET development, it is often necessary to execute multiple command lines without repeatedly creating new processes. This approach can be time-consuming and inefficient.
To address this issue, the code snippet provided leverages a technique called process redirection. By redirecting the standard input of the process, you can write commands directly to the process without creating a new shell each time.
The updated ExecuteCommand method below implements this technique:
private void ExecuteCommand(string Command, int Timeout, Boolean closeProcess) { Process p = new Process(); ProcessStartInfo info = new ProcessStartInfo(); info.FileName = "cmd.exe"; info.RedirectStandardInput = true; info.UseShellExecute = false; p.StartInfo = info; p.Start(); using (StreamWriter sw = p.StandardInput) { if (sw.BaseStream.CanWrite) { sw.WriteLine(Command); } } p.WaitForExit(Timeout); if (closeProcess == true) { p.Close(); } }
In this updated method, instead of passing the command as "/C {command}" to the process start info, it redirects the standard input of the process and uses a StreamWriter to write the command directly. This allows you to execute multiple commands without creating multiple processes.
To handle the ""'s in the command, use verbatim strings (prefixed with @) to include the characters literally in the command string.
The above is the detailed content of How Can I Efficiently Execute Multiple Commands in .NET without Repeated Process Creation?. For more information, please follow other related articles on the PHP Chinese website!