Para pasar una ruta con espacios a la aplicación de consola .NET debe escapar de ella. Probablemente no escapa pero envolvente con comillas dobles:Cómo escapar de la ruta que contiene espacios
myapp.exe --path C:\Program Files\MyApp`
se convierte en
new string[] { "--path", "C:\Program", "Files\MyApp" }
pero
myapp.exe --path "C:\Program Files\MyApp"
convierte
new string[] { "--path", "C:\Program Files\MyApp" }
y trabaja muy bien y se puede analizar tan fácilmente .
quiero extender el conjunto de parámetros dados con una adición de un e iniciar un nuevo proceso con el resultado conjunto de parámetros:
new ProcessStartInfo(
Assembly.GetEntryAssembly().Location,
String.Join(" ", Enumerable.Concat(args, new[] { "--flag" })))
esto se convierte en myapp.exe --path C:\Program Files\MyApp --flag
donde ruta deja caer su escape.
¿Cómo solucionarlo con una solución común? (sin buscar el valor de cada parámetro que requiera escapar y citarlo manualmente)
¡Genial! ¡Gracias! por cierto, creo que no hay necesidad de 'string []' y 'IEnumerable' suites aquí bien –
abatishchev