ホームページ >バックエンド開発 >C++ >単一の .NET プロセス内で複数の DOS および MySQL コマンドを実行するにはどうすればよいですか?

単一の .NET プロセス内で複数の DOS および MySQL コマンドを実行するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-29 15:39:12368ブラウズ

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

.NET を使用して同じプロセスで複数のコマンド ラインを実行する

この投稿では、ファイルを作成せずに複数のコマンドを実行するという課題に取り組みます。それぞれに新しいプロセス。目標は、DOS コマンド シェルを開始し、MySQL コマンド シェルに移行し、コマンドをシームレスに実行することです。

提供された最初のコード スニペットは、ExecuteCommand メソッドを使用してこれを達成しようとしました。ただし、効率を高め、複数のプロセスの作成を回避するには、より洗練されたアプローチが必要です。

解決策は、標準入力をリダイレクトし、StreamWriter を利用してコマンドを既存のプロセスに流すことにあります。修正されたコードは次のとおりです。

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

このコードでは、Process オブジェクトを作成し、cmd.exe を使用するように構成します。 RedirectStandardInput を true に設定すると、標準入力のリダイレクトが有効になります。次に、StreamWriter オブジェクトをインスタンス化し、それを使用してプロセスの入力ストリームにコマンドを直接書き込みます。

このアプローチにより、同じプロセス内で複数のコマンドを実行できるようになり、アプリケーションのフローが合理化されます。

以上が単一の .NET プロセス内で複数の DOS および MySQL コマンドを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。