簡體   English   中英

Windows窗體寫入控制台

[英]Windows Form Write to Console

我只是試圖打開控制台並編寫一行,並在編寫該行后使控制台保持打開狀態來執行它。 當前,命令行空白為空且未編寫任何內容。 有任何解決這個問題的方法嗎?

Process cmd = new Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = false;
cmd.Start();

cmd.StandardInput.WriteLine("echo hello");
cmd.StandardInput.WriteLine("pause");
cmd.WaitForExit();

您很可能只是發出一個暫停:

cmd.StandardInput.WriteLine("pause");

應該解決它。

請記住添加:

cmd.StartInfo.RedirectStandardInput = false;

如果這不起作用,則很可能仍然是一個問題,如Microsoft在CMD上專門報道的那樣和輸出。 請參閱: http : //connect.microsoft.com/VisualStudio/feedback/details/609801/unable-to-redirect-only-the-standard-input-of-process-cmd-exe-or-batch-file-from- Windows窗體應用程序

這將解決它:

cmd.StartInfo.RedirectStandardOutput = false;

這對我來說很完美:

using System.Diagnostics;

 namespace ConsoleApplication1
 {
  class Program
  {
    static void Main(string[] args)
    {
        Process cmd = new Process();
        cmd.StartInfo.FileName = "cmd.exe";
        cmd.StartInfo.UseShellExecute = false;
        cmd.StartInfo.RedirectStandardInput = true;
        //cmd.StartInfo.RedirectStandardOutput = true;
        cmd.Start();

        cmd.StandardInput.WriteLine("pause");
        System.Threading.Thread.Sleep(5000);
        cmd.StandardInput.WriteLine(" ");
        cmd.StandardInput.WriteLine("dir /p");
        cmd.StandardInput.WriteLine("exit");
        cmd.WaitForExit();
    }
  }
}
        Process cmd = new Process();
        cmd.StartInfo.FileName = "cmd.exe";
        cmd.StartInfo.Arguments = "/K \"echo hello\"";
        cmd.Start();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM