Exécuter plusieurs commandes dans un seul processus avec .NET
Afin d'exécuter plusieurs commandes à l'aide d'un seul processus dans .NET, il faut pour créer d'abord une instance de la classe 'Process', ainsi qu'un objet 'ProcessStartInfo' correspondant pour configurer le process.
Ensuite, activez la redirection de l'entrée standard en définissant la propriété 'RedirectStandardInput' dans l'objet 'ProcessStartInfo' sur 'true' et désactivez l'utilisation de l'exécution du shell en définissant 'UseShellExecute' sur 'false'. .
Une fois le processus correctement configuré, on peut le lancer en appelant la méthode 'Start' sur le Objet 'Processus'. Cela démarrera le processus et l'associera aux flux d'entrée, de sortie et d'erreur standard.
Pour écrire dans le flux d'entrée standard du processus, un objet 'StreamWriter' peut être obtenu à l'aide de la propriété 'StandardInput'. sur l'objet 'Processus'. En utilisant la méthode 'WriteLine' sur ce flux, on peut écrire des commandes à exécuter par le processus.
Pour illustrer cela, considérons le code suivant, qui démontre l'exécution de plusieurs commandes MySQL à l'aide d'un seul processus :
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("mysql -u root -p"); sw.WriteLine("mypassword"); sw.WriteLine("use mydb;"); } }
Ce code crée un processus pour l'exécutable 'cmd.exe', redirige l'entrée standard et désactive l'exécution du shell. À l'intérieur du bloc « using », un « StreamWriter » est utilisé pour écrire des commandes sur l'entrée standard, notamment la connexion au serveur MySQL, la fourniture du mot de passe et la sélection de la base de données souhaitée. En exécutant ces commandes dans un seul processus, on peut éviter de créer plusieurs processus et garantir que les commandes sont exécutées dans un ordre spécifique.
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!