cmd.exeとVisualBasic.netでコンソールアプリケーションを実行した場合の挙動の違いについて
VB.net上で対話型コンソールアプリケーションの実行について以前質問させて頂いた者です。
質問:ウィンドウズフォームアプリケーションから対話型コンソールアプリケーションを操作する為の実装について
あれから試行錯誤した結果、VB.netから起動した mysql.exe
は、正しくないコマンド列を受け取るとプロセスが終了してしまうようです。しかしコマンドプロンプトから実行した場合は、エラーが発生しても mysql.exe
は終了しません。
前回Rippleさんに頂いた回答では次のように書かれていました。
mysqlコマンドは出力がリダイレクトされると動きが変わります。出力を最適化するため、出力先がコンソールかどうか判断してわざわざ動きを変えているようです。
確かに p.StartInfo.RedirectStandardOutput = True
を指定したので、私の作ったプログラムがリダイレクトを利用しているのだと理解できます。ということは cmd.exe
は別の方法で mysql.exe
とやり取りしているはずですが、それはどういったもので、VB.netから実行するときと何が違うのでしょうか?
両者ともアプリケーションが対話型コンソールアプリケーションを実行するという構図は同じように思えるのですが…
よろしくご教示お願い致します。