Maison >développement back-end >C++ >Comment exécuter plusieurs commandes DOS et MySQL au sein d'un seul processus .NET ?

Comment exécuter plusieurs commandes DOS et MySQL au sein d'un seul processus .NET ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-29 15:39:12380parcourir

How to Execute Multiple DOS and MySQL Commands within a Single .NET Process?

Exécuter plusieurs lignes de commande avec le même processus à l'aide de .NET

Dans cet article, nous abordons le défi de l'exécution de plusieurs commandes sans créer de fichier nouveau processus pour chacun. L'objectif est de lancer le shell de commande DOS, de passer au shell de commande MySQL et d'exécuter une commande de manière transparente.

L'extrait de code initial fourni a tenté d'y parvenir en utilisant la méthode ExecuteCommand. Cependant, pour améliorer l'efficacité et éviter de créer plusieurs processus, une approche plus raffinée est nécessaire.

La solution réside dans la redirection de l'entrée standard et l'utilisation d'un StreamWriter pour canaliser les commandes vers le processus existant. Voici le code révisé :

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;");
    }
}

Dans ce code, nous créons un objet Process et le configurons pour utiliser cmd.exe. En définissant RedirectStandardInput sur true, nous activons la redirection de l'entrée standard. Ensuite, nous instancions un objet StreamWriter et l'utilisons pour écrire des commandes directement dans le flux d'entrée du processus.

Cette approche vous permet d'exécuter plusieurs commandes au sein du même processus, rationalisant ainsi le flux de votre application.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn