Per passare un percorso con spazi a un'applicazione di console .NET, è necessario scappare. Probabilmente non sfugge, ma circondano con virgolette doppie:Come uscire dal percorso contenente spazi
myapp.exe --path C:\Program Files\MyApp`
diventa
new string[] { "--path", "C:\Program", "Files\MyApp" }
ma
myapp.exe --path "C:\Program Files\MyApp"
diventa
new string[] { "--path", "C:\Program Files\MyApp" }
e funziona benissimo e si può analizzare così facilmente .
voglio estendere il set di parametri dati con un'aggiunta e creare un nuovo processo con il set risultante di parametri:
new ProcessStartInfo(
Assembly.GetEntryAssembly().Location,
String.Join(" ", Enumerable.Concat(args, new[] { "--flag" })))
questo diventa myapp.exe --path C:\Program Files\MyApp --flag
dove percorso scende la sua fuga.
Come risolverlo con una soluzione comune? (senza cercare il valore di ogni parametro che richiede l'escaping e quotandolo manualmente)
Grande! Grazie! btw, penso che non ci sia bisogno di 'string []' e 'IEnumerable' suite qui bene –
abatishchev