Env: .NET 3.5 Visual Studio 2008 SP1, trên Win XP SP3, Python 2.7. Hình ảnh công ty, không có quyền quản trị.C# đối số dòng lệnh với dòng mới không thành công trong C# nhưng không phải trong python. Cần làm cho C# work
Trong C# 3.5, tôi muốn chuyển tham số cho chương trình dòng lệnh và tham số này chứa dòng mới. Nó hoạt động trong Python 2.7 nhưng không phải trong C#.
Khi nội dung chứa dòng mới, C# cắt ngắn kết quả, nhưng python chuyển nó chính xác.
mã Python # mã
cmd = self.app_path + ' email -Subject "' + subject + '" -From "' + address_from + '" -To "' + address_to +'" -Body "' + body +'"'
cmd_result = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()
C:
string Command = "<path to executable>";
string arguments = " email -From " + FromAddress + " -To " + ToAddress + " -Subject \"" + SubjectLine + "\" -Body \"" + emailBody + "\" ";
System.Diagnostics.ProcessStartInfo start = new System.Diagnostics.ProcessStartInfo(Command, arguments);
start.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
start.CreateNoWindow = false;
start.UseShellExecute = true;
System.Diagnostics.Process process = System.Diagnostics.Process.Start(start);
Bất kỳ ý tưởng?
Cập nhật: nội dung trong ví dụ trăn và emailBody trong ví dụ C# chứa cùng một chuỗi, vì chuỗi được thể hiện bằng từng ngôn ngữ.
Cập nhật: nhận thấy lệnh không được chấm dứt chính xác trong mã python. Tôi đã thêm + '"' ở cuối dòng 2. Mã này chạy như trước.
Ngoài ra, như bạn có thể nói, các ứng dụng được gọi là gửi cơ thể (emailBody) nội dung thông số như một cơ thể email.
Ed, tôi có nghĩa là con trăn chuyển các ký tự dòng mới theo cách được hiểu chính xác bởi ứng dụng, như trong, chúng là ký tự dòng mới, không chuỗi chấm dứt. –
Do C# và mã python gọi cùng một quá trình với cùng một đối số? – GianT971
@ GianT971, vâng. –