コンソールでCMDコマンドが実行されていません

私はWinFormで本当にうまく動作するC#でcmdコマンドを実行するいくつかのコードを持っていますが、これをコンソールアプリケーションで実行すると動作しません。私はこれがどうしてこんなに難しいかというと、Windows.Formsを参照として追加して、コードに using を追加しようとしましたが、これはうまくいきませんでした。私が考えることができる唯一の他のものは、コンソールとして実行されているため、これの上に別のコンソールウィンドウを実行できないということです。

どんな助けもありがとうございます。

ProcessStartInfo cmd = new ProcessStartInfo("cmd.exe");
cmd.RedirectStandardInput = true;
cmd.RedirectStandardOutput = true;
cmd.RedirectStandardError = true;
cmd.UseShellExecute = false;
cmd.CreateNoWindow = true;
cmd.WindowStyle = ProcessWindowStyle.Hidden;
Process console = Process.Start(cmd);
console.StandardInput.WriteLine("command to run");
1
うわー、このすべてのフォルダを作成するには? Directory.CreateDirectory メソッドについてはどうですか?
追加された 著者 Darin Dimitrov,
あなたのコマンドを実行するには cmd.exe が絶対必要ですか? Process.Start を使用して直接実行することはできませんか?
追加された 著者 madd0,
@DarinDimitrov mdコマンドはちょうど私がコマンドを置く例のように、私はあなたのポイントを参照して編集しました!
追加された 著者 Bali C,
ええ、私はこのコードが停止するコンソールウィンドウが表示されるのが好きではありません。
追加された 著者 Bali C,

1 答え

次のコードでは、コンソールコマンドを実行して、現在のウィンドウにコンソールテキストを出力します。while(true)の後のすべては例です。

        ProcessStartInfo cmd = new ProcessStartInfo("cmd.exe");
        cmd.RedirectStandardInput = true;
        cmd.UseShellExecute = false;
        cmd.CreateNoWindow = false;
        cmd.WindowStyle = ProcessWindowStyle.Normal;
        Process console = Process.Start(cmd);

        while(true)
            console.StandardInput.WriteLine("pause");

コンソール出力を行わない場合は、CreateNoWindowをtrueに設定します。また、このコードはSystem.Diagnosticsを使用してコンソールアプリケーション内で動作します

がんばろう!

1
追加された
私のために働かない。単にコマンドを渡すだけですが、シーンの後ろで何も起こりません。
追加された 著者 Saeed Neamati,
素晴らしい、ちょうど私が探していたもの、+1。どうもありがとうございました!
追加された 著者 Bali C,