[英]Read/Write data to Console generated by exe from windows form application
[英]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.