Cách chạy nhiều lệnh cmd trên c#

Như tiêu đề là mình muốn chạy lệnh cmd bằng c#, tuy mình có xem qua nhiều bài viết nhưng nó vẫn chưa đáp ứng được yêu cầu của mình.

Mình đã sử dụng Process.Start("cmd.exe", command) để thực hiện
Nhưng mỗi lần nó chỉ chạy được một lệnh rồi sau đó lại tắt Process :sweat_smile:

Vì vậy mình đã thực hiện như sau
image
Sử dụng 1 biến cục bộ với hy vọng có thể dùng lại nó.

Tuy nhiên với cách này thì nó cũng chạy được 1 lần và khi cần lần thứ 2 nó sẽ báo lỗi ở câu lệnh CMD.BeginOutputReadLine() mình không rõ lỗi là gì nhưng hình như là nó nói rằng lệnh đó đã được gọi bởi lần chạy trước rồi nên không thể gọi lại được nữa. :cry:

Vậy thì làm sao mình có thể chạy lệnh nhiều lần trên cùng 1 Process và thêm nữa làm sao để cho mình có thể sử dụng kết quả của lần chạy trước cho lần chạy tiếp theo, như là:

  1. Đầu tiền mình sẽ chạy lệnh “cd …”
  2. lệnh tiếp theo sẽ được thực hiện dựa trên thư mục vừa mẹ của thư mục vừa thực hiện cd .. như là ls hay pwd chẵn hạn.

Vậy mọi người cho mình hỏi làm sao để làm được như vậy ạ. Process có thể đáp ứng được các yêu cầu trên không hay là phải dùng 1 cách khác ạ. :cold_face:

  1. Windows nào có ls với pwd?
  2. Vậy bạn muốn mô phỏng CLI chăng?
3 Likes
  1. lspwd là 2 lệnh trong powershell ấy, mình chỉ lấy ví dụ như vậy cho dễ hiểu thôi :smile:
  2. Mình không rõ CLI là gì nhưng mình muốn là khi mình gõ lệnh trên c# => lệnh sẽ được chạy trên cmd/powershell => trả ra lại kết quả cho mình
    => Giống như là mô phỏng lại cmd/powershell á
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?