.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 サイトの他の関連記事を参照してください。