Để chuyển một đường dẫn có khoảng trống tới ứng dụng .NET console, bạn nên thoát khỏi nó. Có lẽ không thoát khỏi nhưng bao quanh với dấu ngoặc kép:Cách để thoát khỏi đường dẫn có chứa các khoảng trống
myapp.exe --path C:\Program Files\MyApp`
trở thành
new string[] { "--path", "C:\Program", "Files\MyApp" }
nhưng
myapp.exe --path "C:\Program Files\MyApp"
trở thành
new string[] { "--path", "C:\Program Files\MyApp" }
và nó hoạt động tốt và bạn có thể phân tích một cách dễ dàng .
tôi muốn mở rộng các thiết lập các thông số được đưa ra với một sự bổ sung một và bắt đầu một quá trình mới với các thiết lập kết quả của các thông số:
new ProcessStartInfo(
Assembly.GetEntryAssembly().Location,
String.Join(" ", Enumerable.Concat(args, new[] { "--flag" })))
này trở nên myapp.exe --path C:\Program Files\MyApp --flag
nơi con đường giảm thoát của nó.
Cách khắc phục sự cố với giải pháp chung? (không tìm kiếm giá trị của mỗi thông số yêu cầu thoát và trích dẫn nó theo cách thủ công)
Tuyệt vời! Cảm ơn! btw, tôi nghĩ rằng không cần phải 'chuỗi []' và 'IEnumerable 'dãy ở đây cũng –
abatishchev