要将带有空格的路径传递给 .NET 控制台应用程序,您应该转义它。可能不是转义而是用双引号引起来:
myapp.exe --path C:\Program Files\MyApp`
becomes
new string[] { "--path", "C:\Program", "Files\MyApp" }
but
myapp.exe --path "C:\Program Files\MyApp"
becomes
new string[] { "--path", "C:\Program Files\MyApp" }
它工作得很好,你可以轻松解析它。
我想扩展给定的一组参数并添加一个参数,并使用生成的参数组启动一个新过程:
new ProcessStartInfo(
Assembly.GetEntryAssembly().Location,
String.Join(" ", Enumerable.Concat(args, new[] { "--flag" })))
这变成myapp.exe --path C:\Program Files\MyApp --flag
路径放弃转义的地方。
如何用常见的解决方案来解决这个问题? (无需搜索每个参数的值,需要手动转义和引用它)