Exécuter efficacement plusieurs commandes dans .NET
Dans le développement .NET, il est souvent nécessaire d'exécuter plusieurs lignes de commande sans créer de nouveaux processus à plusieurs reprises . Cette approche peut prendre du temps et être inefficace.
Pour résoudre ce problème, l'extrait de code fourni exploite une technique appelée redirection de processus. En redirigeant l'entrée standard du processus, vous pouvez écrire des commandes directement dans le processus sans créer un nouveau shell à chaque fois.
La méthode ExecuteCommand mise à jour ci-dessous implémente cette 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(); } }
Dans cette méthode mise à jour, au lieu de transmettre la commande sous la forme "/C {command}" aux informations de démarrage du processus, elle redirige l'entrée standard du processus et utilise un StreamWriter pour écrire directement la commande. Cela vous permet d'exécuter plusieurs commandes sans créer plusieurs processus.
Pour gérer les "" dans la commande, utilisez des chaînes textuelles (préfixées par @) pour inclure les caractères littéralement dans la chaîne de commande.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!