Pour passer un chemin avec des espaces à l'application console .NET, vous devez lui échapper. Probablement pas échapper, mais entourer de guillemets doubles:Comment faire pour échapper chemin d'accès contenant des espaces
myapp.exe --path C:\Program Files\MyApp`
DEVIENT
new string[] { "--path", "C:\Program", "Files\MyApp" }
mais
myapp.exe --path "C:\Program Files\MyApp"
devient
new string[] { "--path", "C:\Program Files\MyApp" }
et il fonctionne très bien et vous pouvez analyser si facilement .
Je veux étendre l'ensemble des paramètres donnés avec un ajout d'un et de commencer un nouveau processus avec l'ensemble des paramètres résultant:
new ProcessStartInfo(
Assembly.GetEntryAssembly().Location,
String.Join(" ", Enumerable.Concat(args, new[] { "--flag" })))
Cela devient myapp.exe --path C:\Program Files\MyApp --flag
où chemin descend son Évasion.
Comment contourner le problème avec une solution commune? (sans chercher la valeur de chaque paramètre nécessitant de s'échapper et de l'indiquer manuellement)
Parfait! Merci! btw, je pense qu'il n'y a pas besoin de 'string []' et 'IEnumerable' suites bien ici –
abatishchev