1
  1. C# から cmd.exe で一連のコマンドを実行したいと考えています。
  2. cmdのウィンドウを1つだけ開く必要があります
  3. 実行中および完了後もcmdウィンドウを開いたままにしておく必要があります。
  4. [編集]開いたコマンド ウィンドウ[/編集]で実行されたコマンドと、コマンドの出力を表示する必要があります。

したがって、基本的には、手動ユーザーと同じように cmd.exe を開いて使用したいと考えています。いくつかの方法を試しましたが、上記の 4 つの項目すべてを実行できるものはありませんでした。

以下のコードは機能しますが、コマンド/出力を表示せず、完了後に終了します。何か助けはありますか?

Process p = new Process();
ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
info.RedirectStandardInput = true;
info.UseShellExecute = false;
info.CreateNoWindow = false;
info.Arguments = "/k";

p.StartInfo = info;
p.Start();

using (StreamWriter sw = p.StandardInput)
{
    if (sw.BaseStream.CanWrite)
    {
         sw.WriteLine("dir");
         sw.WriteLine("ipconfig");
    }
}
4

2 に答える 2

0

コマンドが実行された後、アウトプットインサートConsole.ReadLine();(結果を確認できるようにキーを送信するまでアプリケーションは停止します)を確認するため。

  static void Main(string[] args)
            {
                Process p = new Process();
                ProcessStartInfo info = new ProcessStartInfo("cmd.exe");
                info.RedirectStandardInput = true;
                info.UseShellExecute = false;
                info.CreateNoWindow = false;

                p.StartInfo = info;
                p.Start();

                using (StreamWriter sw = p.StandardInput)
                {
                    if (sw.BaseStream.CanWrite)
                    {
                        sw.WriteLine("dir");

                        sw.WriteLine("ipconfig");
                    }
                }
                Console.ReadLine();
            }
于 2013-04-11T09:23:51.017 に答える