2010-04-25 48 views
11

Tôi đang cố gắng Bắt đầu quá trình bắt đầu lệnh với args. Bây giờ tôi muốn lấy thông tin về lỗi nếu chúng tồn tại.Process.Start() nhận được lỗi từ cửa sổ nhắc lệnh

someProcess = System.Diagnostics.Process.Start(cmd, someArgs); 

Trân trọng, loviji

+0

Ý của bạn là gì? – SLaks

+1

Câu hỏi hoàn toàn mơ hồ. Loại lỗi nào? – Nayan

+1

Nó không phải là một câu hỏi mơ hồ chút nào. Có thể hiểu được. – cgalvao1993

Trả lời

12

Các câu trả lời khác là chính xác. Dưới đây là một số mã bạn có thể sử dụng:

ProcessStartInfo startInfo = new ProcessStartInfo(cmd, args); 
startInfo.UseShellExecute = false; 
startInfo.RedirectStandardError = true; 
Process someProcess = Process.Start(startInfo); 
string errors = someProcess.StandardError.ReadToEnd(); 

Lưu ý rằng nếu không tìm thấy tệp, bạn sẽ không gặp lỗi về lỗi chuẩn. Thay vào đó, bạn sẽ nhận được một ngoại lệ.

+0

Lưu ý rằng cuộc gọi đến ReadToEnd có thể không bao giờ chấm dứt. Để tránh bế tắc sử dụng các phương thức đọc không đồng bộ thay thế. Xem câu trả lời của tôi ở đây: http://stackoverflow.com/questions/139593/processstartinfo-hanging-on-waitforexit-why/7608823#7608823 –

+0

Tôi theo dõi ans của bạn. và nhận được lỗi này do lỗi (chuỗi var.) 'casperjs' không được nhận dạng như là lệnh nội bộ hoặc bên ngoài, \ r \ nphương trình hoặc tệp hàng loạt có thể hoạt động. \ r \ n Plz đưa ra bất kỳ giải pháp nào nếu tồn tại –

Các vấn đề liên quan