Tôi mới dùng C# và cố gắng phát triển một ứng dụng nhỏ mở nội bộ lệnh nhắc và thực thi một số lệnh tại đây. Đây là những gì tôi đã thực hiện cho đến thời điểm này:Đang chờ lệnh hoàn thành trong C#
m_command = new Process();
m_command.StartInfo.FileName = @"cmd.exe";
m_command.StartInfo.UseShellExecute = false;
m_command.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
m_command.StartInfo.CreateNoWindow = true;
m_command.StartInfo.RedirectStandardInput = true;
m_command.StartInfo.RedirectStandardOutput = true;
m_command.Start();
m_reader = m_command.StandardOutput;
m_writer = m_command.StandardInput;
m_writer.WriteLine("Somecommand"); //execute some command
Như bạn có thể thấy, tôi đã chuyển hướng đầu vào và đầu ra. Câu hỏi của tôi là làm thế nào để tôi thực hiện "một số lệnh" đồng bộ tức là tôi muốn đọc kết quả của lệnh của tôi bằng cách sử dụng đầu ra được chuyển hướng. Cho rằng tôi phải chờ cho đến khi lệnh tôi gọi bằng cách sử dụng WriteLine để hoàn thành. Làm thế nào để làm điều đó?
Nhưng tôi không muốn cửa sổ lệnh đóng lại. Tôi muốn sử dụng lại cùng một dấu nhắc lệnh để thực hiện một số lệnh khác. Phương pháp này vẫn hoạt động? – Naveen
Điều đó sẽ đợi cho đến khi cmd.exe đóng, nhưng bỏ qua phần cuối của "somecommand". –
Bạn luôn có thể thêm m_writer.WriteLine ("exit"); –